Gerionte Team
/
BasculaDeCebo_B
Báscula de cebo funcionado.
main.cpp@1:93d8becc35f9, 2016-05-25 (annotated)
- Committer:
- bertonieto
- Date:
- Wed May 25 16:11:32 2016 +0000
- Revision:
- 1:93d8becc35f9
- Parent:
- 0:376d7a150177
- Child:
- 2:11373e09c930
- Child:
- 3:8db024073f1f
Programa de gestion de bascula con LCD por i2c.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oscarvzfz | 0:376d7a150177 | 1 | #include "mbed.h" |
oscarvzfz | 0:376d7a150177 | 2 | #include "TextLCD.h" |
bertonieto | 1:93d8becc35f9 | 3 | #include <string> |
oscarvzfz | 0:376d7a150177 | 4 | |
bertonieto | 1:93d8becc35f9 | 5 | //ZONA DE PRUEBAS |
oscarvzfz | 0:376d7a150177 | 6 | |
bertonieto | 1:93d8becc35f9 | 7 | //definimos la bascula para despues obtener el peso |
bertonieto | 1:93d8becc35f9 | 8 | Serial serialBascula(p9, p10); //Tx,Rx |
bertonieto | 1:93d8becc35f9 | 9 | |
bertonieto | 1:93d8becc35f9 | 10 | //Iniciamos I2C Communication |
bertonieto | 1:93d8becc35f9 | 11 | I2C i2c_lcd(p28,p27); // SDA, SCL |
oscarvzfz | 0:376d7a150177 | 12 | TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780); // I2C bus, PCF8574 Slaveaddress, LCD Type, Device Type |
oscarvzfz | 0:376d7a150177 | 13 | |
bertonieto | 1:93d8becc35f9 | 14 | //Iniciamos el LCD. |
bertonieto | 1:93d8becc35f9 | 15 | void iniciaLCD(){ |
bertonieto | 1:93d8becc35f9 | 16 | lcd.setMode(TextLCD::DispOn); //DispOff, DispOn |
bertonieto | 1:93d8becc35f9 | 17 | lcd.setBacklight(TextLCD::LightOff);//LightOff, LightOn |
bertonieto | 1:93d8becc35f9 | 18 | lcd.setCursor(TextLCD::CurOff_BlkOff);//CurOff_BlkOff, CurOn_BlkOff, CurOff_BlkOn, CurOn_BlkOn |
bertonieto | 1:93d8becc35f9 | 19 | } |
oscarvzfz | 0:376d7a150177 | 20 | |
bertonieto | 1:93d8becc35f9 | 21 | int leerPeso(){ |
bertonieto | 1:93d8becc35f9 | 22 | char buffer1[100]; |
bertonieto | 1:93d8becc35f9 | 23 | string pesoss; |
bertonieto | 1:93d8becc35f9 | 24 | int ipesoss; |
bertonieto | 1:93d8becc35f9 | 25 | serialBascula.printf("2005002D:<CR><LF>\n"); //\r\n |
bertonieto | 1:93d8becc35f9 | 26 | if (serialBascula.readable()==true){ |
bertonieto | 1:93d8becc35f9 | 27 | //serialBascula.gets(buffer1,20); |
bertonieto | 1:93d8becc35f9 | 28 | pesoss = serialBascula.gets(buffer1,40); |
bertonieto | 1:93d8becc35f9 | 29 | pesoss = pesoss.substr(10,4); |
bertonieto | 1:93d8becc35f9 | 30 | strcpy(buffer1, pesoss.c_str()); |
bertonieto | 1:93d8becc35f9 | 31 | ipesoss = atoi(buffer1); |
bertonieto | 1:93d8becc35f9 | 32 | } |
bertonieto | 1:93d8becc35f9 | 33 | return ipesoss; |
bertonieto | 1:93d8becc35f9 | 34 | } |
bertonieto | 1:93d8becc35f9 | 35 | |
bertonieto | 1:93d8becc35f9 | 36 | //Main, aqui ponemos todo el programa. |
bertonieto | 1:93d8becc35f9 | 37 | int main(){ |
bertonieto | 1:93d8becc35f9 | 38 | Serial pc(USBTX, USBRX); |
bertonieto | 1:93d8becc35f9 | 39 | iniciaLCD(); //Iniciamos el LCD |
bertonieto | 1:93d8becc35f9 | 40 | int pesoreal; |
bertonieto | 1:93d8becc35f9 | 41 | |
bertonieto | 1:93d8becc35f9 | 42 | while(1){ |
bertonieto | 1:93d8becc35f9 | 43 | pesoreal = leerPeso(); |
bertonieto | 1:93d8becc35f9 | 44 | lcd.locate(5,1); |
bertonieto | 1:93d8becc35f9 | 45 | lcd.printf("%d", pesoreal); |
bertonieto | 1:93d8becc35f9 | 46 | wait(1); |
bertonieto | 1:93d8becc35f9 | 47 | } |
bertonieto | 1:93d8becc35f9 | 48 | //rfid.printf("20050025:<CR><LF>"); |
bertonieto | 1:93d8becc35f9 | 49 | //pc.printf("%s",rfid.getc()); |
bertonieto | 1:93d8becc35f9 | 50 | //el problema viene cuando se intenta llamar a la funcion que devuelve el peso. a veces da error porque el peso no se puede cast-ear a int. No se poque ocurre este error ni como solventarlo. |
bertonieto | 1:93d8becc35f9 | 51 | //voy a mirar el tema en C++ |
bertonieto | 1:93d8becc35f9 | 52 | } |