Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed LiquidCrystal_I2C_for_KL25Z
main.cpp@1:5f15147dfad8, 2022-04-26 (annotated)
- Committer:
- micros22eq7
- Date:
- Tue Apr 26 05:26:07 2022 +0000
- Revision:
- 1:5f15147dfad8
- Parent:
- 0:3e5902ddcd6e
- Child:
- 2:498f4d75c4bc
v5;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| micros22eq7 | 0:3e5902ddcd6e | 1 | //CÓDIGO 3-B |
| micros22eq7 | 0:3e5902ddcd6e | 2 | |
| micros22eq7 | 0:3e5902ddcd6e | 3 | #include "mbed.h" |
| micros22eq7 | 0:3e5902ddcd6e | 4 | #include "stdlib.h" |
| micros22eq7 | 0:3e5902ddcd6e | 5 | #include <LiquidCrystal_I2C.h> |
| micros22eq7 | 0:3e5902ddcd6e | 6 | #include <iostream> |
| micros22eq7 | 0:3e5902ddcd6e | 7 | #include <string> |
| micros22eq7 | 0:3e5902ddcd6e | 8 | |
| micros22eq7 | 0:3e5902ddcd6e | 9 | Serial pc(USBTX, USBRX); // tx, rx |
| micros22eq7 | 0:3e5902ddcd6e | 10 | |
| micros22eq7 | 0:3e5902ddcd6e | 11 | //Los puertos SDA y SD8 están referenciados en el archivo LiquidCrystal_I2C.cpp |
| micros22eq7 | 0:3e5902ddcd6e | 12 | // SDA -> PTC9 |
| micros22eq7 | 0:3e5902ddcd6e | 13 | // SCL -> PTC8 |
| micros22eq7 | 0:3e5902ddcd6e | 14 | // DIR TIPO |
| micros22eq7 | 0:3e5902ddcd6e | 15 | LiquidCrystal_I2C lcd(0x4E, 16, 2); |
| micros22eq7 | 0:3e5902ddcd6e | 16 | |
| micros22eq7 | 0:3e5902ddcd6e | 17 | I2CSlave slave(I2C_SDA, I2C_SCL); |
| micros22eq7 | 0:3e5902ddcd6e | 18 | |
| micros22eq7 | 0:3e5902ddcd6e | 19 | char addr = 0xA0; |
| micros22eq7 | 0:3e5902ddcd6e | 20 | |
| micros22eq7 | 0:3e5902ddcd6e | 21 | |
| micros22eq7 | 0:3e5902ddcd6e | 22 | int main() |
| micros22eq7 | 0:3e5902ddcd6e | 23 | { |
| micros22eq7 | 1:5f15147dfad8 | 24 | PwmOut rled(LED1); |
| micros22eq7 | 1:5f15147dfad8 | 25 | PwmOut gled(LED2); |
| micros22eq7 | 1:5f15147dfad8 | 26 | PwmOut bled(LED3); |
| micros22eq7 | 1:5f15147dfad8 | 27 | |
| micros22eq7 | 1:5f15147dfad8 | 28 | float x, y, z; |
| micros22eq7 | 1:5f15147dfad8 | 29 | |
| micros22eq7 | 1:5f15147dfad8 | 30 | pc.printf("\r\n"); |
| micros22eq7 | 1:5f15147dfad8 | 31 | char buf[16]; |
| micros22eq7 | 0:3e5902ddcd6e | 32 | |
| micros22eq7 | 0:3e5902ddcd6e | 33 | // Inicia la LCD |
| micros22eq7 | 0:3e5902ddcd6e | 34 | lcd.begin(); |
| micros22eq7 | 1:5f15147dfad8 | 35 | |
| micros22eq7 | 0:3e5902ddcd6e | 36 | slave.address(addr); |
| micros22eq7 | 0:3e5902ddcd6e | 37 | slave.frequency (100000); |
| micros22eq7 | 1:5f15147dfad8 | 38 | |
| micros22eq7 | 0:3e5902ddcd6e | 39 | lcd.clear(); |
| micros22eq7 | 1:5f15147dfad8 | 40 | lcd.print("Datos obtenidos:"); |
| micros22eq7 | 1:5f15147dfad8 | 41 | char msg[] = "Respuesta slave"; |
| micros22eq7 | 1:5f15147dfad8 | 42 | while (1) |
| micros22eq7 | 0:3e5902ddcd6e | 43 | { |
| micros22eq7 | 0:3e5902ddcd6e | 44 | int i = slave.receive(); |
| micros22eq7 | 1:5f15147dfad8 | 45 | |
| micros22eq7 | 0:3e5902ddcd6e | 46 | switch (i) { |
| micros22eq7 | 0:3e5902ddcd6e | 47 | case I2CSlave::ReadAddressed: |
| micros22eq7 | 1:5f15147dfad8 | 48 | slave.write(msg, strlen(msg) + 1); |
| micros22eq7 | 1:5f15147dfad8 | 49 | NVIC_SystemReset(); |
| micros22eq7 | 0:3e5902ddcd6e | 50 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 51 | case I2CSlave::WriteGeneral: |
| micros22eq7 | 1:5f15147dfad8 | 52 | slave.read(buf, 16); |
| micros22eq7 | 0:3e5902ddcd6e | 53 | printf("\rRead General: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 54 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 55 | case I2CSlave::WriteAddressed: |
| micros22eq7 | 1:5f15147dfad8 | 56 | slave.read(buf, 16); |
| micros22eq7 | 0:3e5902ddcd6e | 57 | pc.printf("\rRead Addressed: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 58 | |
| micros22eq7 | 1:5f15147dfad8 | 59 | sscanf(buf, "%f, %f, %f", &x, &y, &z); |
| micros22eq7 | 1:5f15147dfad8 | 60 | rled = 1.0f - x; //Encender LED interno |
| micros22eq7 | 1:5f15147dfad8 | 61 | gled = 1.0f - y; |
| micros22eq7 | 1:5f15147dfad8 | 62 | bled = 1.0f - z; |
| micros22eq7 | 1:5f15147dfad8 | 63 | |
| micros22eq7 | 1:5f15147dfad8 | 64 | lcd.setCursor(2, 1); |
| micros22eq7 | 0:3e5902ddcd6e | 65 | lcd.print(buf); |
| micros22eq7 | 1:5f15147dfad8 | 66 | NVIC_SystemReset(); |
| micros22eq7 | 0:3e5902ddcd6e | 67 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 68 | } |
| micros22eq7 | 1:5f15147dfad8 | 69 | for (int i = 0; i < 16; i++) { |
| micros22eq7 | 0:3e5902ddcd6e | 70 | buf[i] = 0; // Clear buffer |
| micros22eq7 | 0:3e5902ddcd6e | 71 | } |
| micros22eq7 | 0:3e5902ddcd6e | 72 | } |
| micros22eq7 | 0:3e5902ddcd6e | 73 | } |