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@2:498f4d75c4bc, 2022-04-26 (annotated)
- Committer:
- micros22eq7
- Date:
- Tue Apr 26 14:12:26 2022 +0000
- Revision:
- 2:498f4d75c4bc
- Parent:
- 1:5f15147dfad8
vf
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 | I2CSlave slave(I2C_SDA, I2C_SCL); |
| micros22eq7 | 0:3e5902ddcd6e | 17 | char addr = 0xA0; |
| micros22eq7 | 0:3e5902ddcd6e | 18 | |
| micros22eq7 | 0:3e5902ddcd6e | 19 | int main() |
| micros22eq7 | 0:3e5902ddcd6e | 20 | { |
| micros22eq7 | 1:5f15147dfad8 | 21 | PwmOut rled(LED1); |
| micros22eq7 | 1:5f15147dfad8 | 22 | PwmOut gled(LED2); |
| micros22eq7 | 1:5f15147dfad8 | 23 | PwmOut bled(LED3); |
| micros22eq7 | 1:5f15147dfad8 | 24 | |
| micros22eq7 | 1:5f15147dfad8 | 25 | float x, y, z; |
| micros22eq7 | 1:5f15147dfad8 | 26 | |
| micros22eq7 | 1:5f15147dfad8 | 27 | pc.printf("\r\n"); |
| micros22eq7 | 1:5f15147dfad8 | 28 | char buf[16]; |
| micros22eq7 | 2:498f4d75c4bc | 29 | lcd.begin(); // Inicia la LCD |
| micros22eq7 | 0:3e5902ddcd6e | 30 | slave.address(addr); |
| micros22eq7 | 0:3e5902ddcd6e | 31 | slave.frequency (100000); |
| micros22eq7 | 1:5f15147dfad8 | 32 | |
| micros22eq7 | 0:3e5902ddcd6e | 33 | lcd.clear(); |
| micros22eq7 | 1:5f15147dfad8 | 34 | lcd.print("Datos obtenidos:"); |
| micros22eq7 | 1:5f15147dfad8 | 35 | char msg[] = "Respuesta slave"; |
| micros22eq7 | 1:5f15147dfad8 | 36 | while (1) |
| micros22eq7 | 0:3e5902ddcd6e | 37 | { |
| micros22eq7 | 0:3e5902ddcd6e | 38 | int i = slave.receive(); |
| micros22eq7 | 0:3e5902ddcd6e | 39 | switch (i) { |
| micros22eq7 | 0:3e5902ddcd6e | 40 | case I2CSlave::ReadAddressed: |
| micros22eq7 | 1:5f15147dfad8 | 41 | slave.write(msg, strlen(msg) + 1); |
| micros22eq7 | 1:5f15147dfad8 | 42 | NVIC_SystemReset(); |
| micros22eq7 | 0:3e5902ddcd6e | 43 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 44 | case I2CSlave::WriteGeneral: |
| micros22eq7 | 1:5f15147dfad8 | 45 | slave.read(buf, 16); |
| micros22eq7 | 0:3e5902ddcd6e | 46 | printf("\rRead General: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 47 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 48 | case I2CSlave::WriteAddressed: |
| micros22eq7 | 1:5f15147dfad8 | 49 | slave.read(buf, 16); |
| micros22eq7 | 0:3e5902ddcd6e | 50 | pc.printf("\rRead Addressed: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 51 | |
| micros22eq7 | 1:5f15147dfad8 | 52 | sscanf(buf, "%f, %f, %f", &x, &y, &z); |
| micros22eq7 | 2:498f4d75c4bc | 53 | //rled = 1.0f - x; //Encender LED interno |
| micros22eq7 | 2:498f4d75c4bc | 54 | //gled = 1.0f - y; |
| micros22eq7 | 2:498f4d75c4bc | 55 | //bled = 1.0f - z; |
| micros22eq7 | 1:5f15147dfad8 | 56 | |
| micros22eq7 | 1:5f15147dfad8 | 57 | lcd.setCursor(2, 1); |
| micros22eq7 | 0:3e5902ddcd6e | 58 | lcd.print(buf); |
| micros22eq7 | 1:5f15147dfad8 | 59 | NVIC_SystemReset(); |
| micros22eq7 | 0:3e5902ddcd6e | 60 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 61 | } |
| micros22eq7 | 1:5f15147dfad8 | 62 | for (int i = 0; i < 16; i++) { |
| micros22eq7 | 0:3e5902ddcd6e | 63 | buf[i] = 0; // Clear buffer |
| micros22eq7 | 0:3e5902ddcd6e | 64 | } |
| micros22eq7 | 0:3e5902ddcd6e | 65 | } |
| micros22eq7 | 0:3e5902ddcd6e | 66 | } |