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@0:3e5902ddcd6e, 2022-04-25 (annotated)
- Committer:
- micros22eq7
- Date:
- Mon Apr 25 18:47:38 2022 +0000
- Revision:
- 0:3e5902ddcd6e
- Child:
- 1:5f15147dfad8
Conexion entre microcontroladores KL25Z e impresion de informacion en LCD y uso de LED interno, por protocolos de comunicacion I2C. Modulo SALVE / ESCLAVO.
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 | 0:3e5902ddcd6e | 24 | pc.printf("\x1b[2J"); //CLEAR |
| micros22eq7 | 0:3e5902ddcd6e | 25 | pc.printf("\033[1;1H"); //Mueve cursor al origen |
| micros22eq7 | 0:3e5902ddcd6e | 26 | |
| micros22eq7 | 0:3e5902ddcd6e | 27 | char buf[50]; |
| micros22eq7 | 0:3e5902ddcd6e | 28 | |
| micros22eq7 | 0:3e5902ddcd6e | 29 | // Inicia la LCD |
| micros22eq7 | 0:3e5902ddcd6e | 30 | lcd.begin(); |
| micros22eq7 | 0:3e5902ddcd6e | 31 | |
| micros22eq7 | 0:3e5902ddcd6e | 32 | slave.address(addr); |
| micros22eq7 | 0:3e5902ddcd6e | 33 | slave.frequency (100000); |
| micros22eq7 | 0:3e5902ddcd6e | 34 | pc.printf("SLAVE ID: %d\r\n", addr); |
| micros22eq7 | 0:3e5902ddcd6e | 35 | |
| micros22eq7 | 0:3e5902ddcd6e | 36 | lcd.clear(); |
| micros22eq7 | 0:3e5902ddcd6e | 37 | lcd.print("I'M SLAVE"); |
| micros22eq7 | 0:3e5902ddcd6e | 38 | char msg[] = " *Si* "; |
| micros22eq7 | 0:3e5902ddcd6e | 39 | while (1) |
| micros22eq7 | 0:3e5902ddcd6e | 40 | { |
| micros22eq7 | 0:3e5902ddcd6e | 41 | int i = slave.receive(); |
| micros22eq7 | 0:3e5902ddcd6e | 42 | |
| micros22eq7 | 0:3e5902ddcd6e | 43 | switch (i) { |
| micros22eq7 | 0:3e5902ddcd6e | 44 | case I2CSlave::ReadAddressed: |
| micros22eq7 | 0:3e5902ddcd6e | 45 | slave.write(msg, strlen(msg) + 1); // Includes null char |
| micros22eq7 | 0:3e5902ddcd6e | 46 | slave.stop(); |
| micros22eq7 | 0:3e5902ddcd6e | 47 | slave.receive(); |
| micros22eq7 | 0:3e5902ddcd6e | 48 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 49 | case I2CSlave::WriteGeneral: |
| micros22eq7 | 0:3e5902ddcd6e | 50 | slave.read(buf, 30); |
| micros22eq7 | 0:3e5902ddcd6e | 51 | printf("\rRead General: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 52 | slave.stop(); |
| micros22eq7 | 0:3e5902ddcd6e | 53 | slave.receive(); |
| micros22eq7 | 0:3e5902ddcd6e | 54 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 55 | case I2CSlave::WriteAddressed: |
| micros22eq7 | 0:3e5902ddcd6e | 56 | slave.read(buf, 30); |
| micros22eq7 | 0:3e5902ddcd6e | 57 | pc.printf("\rRead Addressed: %s\n", buf); |
| micros22eq7 | 0:3e5902ddcd6e | 58 | |
| micros22eq7 | 0:3e5902ddcd6e | 59 | lcd.clear(); |
| micros22eq7 | 0:3e5902ddcd6e | 60 | lcd.print(buf); |
| micros22eq7 | 0:3e5902ddcd6e | 61 | slave.stop(); |
| micros22eq7 | 0:3e5902ddcd6e | 62 | slave.receive(); |
| micros22eq7 | 0:3e5902ddcd6e | 63 | break; |
| micros22eq7 | 0:3e5902ddcd6e | 64 | } |
| micros22eq7 | 0:3e5902ddcd6e | 65 | for (int i = 0; i < 10; i++) { |
| micros22eq7 | 0:3e5902ddcd6e | 66 | buf[i] = 0; // Clear buffer |
| micros22eq7 | 0:3e5902ddcd6e | 67 | } |
| micros22eq7 | 0:3e5902ddcd6e | 68 | |
| micros22eq7 | 0:3e5902ddcd6e | 69 | } |
| micros22eq7 | 0:3e5902ddcd6e | 70 | } |