Báscula de cebo funcionado.

Dependencies:   mbed TextLCD

main.cpp

Committer:
bertonieto
Date:
2016-05-25
Revision:
1:93d8becc35f9
Parent:
0:376d7a150177
Child:
2:11373e09c930
Child:
3:8db024073f1f

File content as of revision 1:93d8becc35f9:

#include "mbed.h"
#include "TextLCD.h"
#include <string>

//ZONA DE PRUEBAS 

//definimos la bascula para despues obtener el peso
Serial serialBascula(p9, p10); //Tx,Rx

//Iniciamos I2C Communication 
I2C i2c_lcd(p28,p27); // SDA, SCL 
TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780); // I2C bus, PCF8574 Slaveaddress, LCD Type, Device Type 

//Iniciamos el LCD.
void iniciaLCD(){
    lcd.setMode(TextLCD::DispOn); //DispOff, DispOn
    lcd.setBacklight(TextLCD::LightOff);//LightOff, LightOn
    lcd.setCursor(TextLCD::CurOff_BlkOff);//CurOff_BlkOff, CurOn_BlkOff, CurOff_BlkOn, CurOn_BlkOn
    }

int leerPeso(){
    char buffer1[100];
    string pesoss;
    int ipesoss;
    serialBascula.printf("2005002D:<CR><LF>\n");   //\r\n
        if (serialBascula.readable()==true){
            //serialBascula.gets(buffer1,20);        
            pesoss = serialBascula.gets(buffer1,40);
            pesoss = pesoss.substr(10,4);
            strcpy(buffer1, pesoss.c_str());
            ipesoss = atoi(buffer1);
        }
        return ipesoss;
    }
    
//Main, aqui ponemos todo el programa.
int main(){
    Serial pc(USBTX, USBRX);    
    iniciaLCD(); //Iniciamos el LCD
    int pesoreal;

    while(1){
        pesoreal = leerPeso();
            lcd.locate(5,1);
            lcd.printf("%d", pesoreal);
        wait(1);
        }
    //rfid.printf("20050025:<CR><LF>");
    //pc.printf("%s",rfid.getc());
    //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.
    //voy a mirar el tema en C++
    }