DIGITALESAVANZADOS

Dependencies:   mbed Servo HC-SR04 TextLCD max6675

main.cpp

Committer:
juanespitiarobotica
Date:
2020-06-09
Revision:
0:834b339f5f94

File content as of revision 0:834b339f5f94:

#include "mbed.h"
#include "HCSR04.h"
#include "rtos.h"
#include "Servo.h"
#include "max6675.h"
#include "TextLCD.h"

HCSR04 ultrasonido(PTA7,PTA6);
Servo servomotor(PTA13);
I2C i2c_lcd(D7,D6);
TextLCD_I2C lcd(&i2c_lcd, 0x4E,  TextLCD::LCD16x2, TextLCD::HD44780);
max6675 sensor(D12,D13,D5);
Serial pc(USBTX,USBRX);
Thread thread;
Thread thread1;
Thread thread2;
Thread thread3;

void pantallalcd(){
    lcd.setMode(TextLCD::DispOn);
    lcd.setBacklight(TextLCD::LightOn);
    lcd.setCursor(TextLCD::CurOff_BlkOff);
    }
    
void temp_hora()
{
    set_time(1256729737);
    int cf = 0;
    while (1) {
        time_t seconds = time(NULL);
        float temp = sensor.gettemp(cf);
        printf("%d", seconds);
        printf("Fecha= %s", ctime(&seconds));

        char buffer[32];
        strftime(buffer, 32, "%H:%M:%S   ", localtime(&seconds));
        printf("%s", buffer);

        printf("%4.2f%cF \n\033[2K\033[1A",temp,176);
        lcd.locate(0,0);
        lcd.printf("temp:%1.2f\n",temp);
            
        Thread::wait(1000);
    }
}

void servo()
{

    servomotor.calibrate(0.001, 180);

    while(1) {
        for(int i=0; i<100; i++) {
            servomotor = i*0.01;
            printf("%d",i);
            Thread::wait(100);
        }
        for(int i=100; i>0; i--) {
            servomotor = i*0.01;
            printf("%d",i);
            Thread::wait(100);
        }
    }
}

void ultra()
{
    while(1) {
        float distancia=ultrasonido.getCm();
        lcd.locate(0,1);
        lcd.printf("dist:%2.f cm\n",distancia);
        Thread::wait(1000);
    }
}    


   
int main()
{
 
    thread.start((ultra));
    thread1.start ((servo));
    thread2.start ((temp_hora));
    thread3.start ((pantallalcd));

}