finales

Dependencies:   mbed Servo HC-SR04 TextLCD max6675 SLCD

Committer:
juanespitiarobotica
Date:
Wed Jun 10 15:21:04 2020 +0000
Revision:
2:828a15eaad12
Parent:
1:0371f6d48091
completo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
juanespitiarobotica 0:834b339f5f94 1 #include "mbed.h"
juanespitiarobotica 0:834b339f5f94 2 #include "HCSR04.h"
juanespitiarobotica 0:834b339f5f94 3 #include "rtos.h"
juanespitiarobotica 0:834b339f5f94 4 #include "Servo.h"
juanespitiarobotica 0:834b339f5f94 5 #include "max6675.h"
juanespitiarobotica 0:834b339f5f94 6 #include "TextLCD.h"
juanespitiarobotica 0:834b339f5f94 7
20172573063 1:0371f6d48091 8 #include "SLCD.h"
20172573063 1:0371f6d48091 9
20172573063 1:0371f6d48091 10
juanespitiarobotica 0:834b339f5f94 11 HCSR04 ultrasonido(PTA7,PTA6);
juanespitiarobotica 0:834b339f5f94 12 Servo servomotor(PTA13);
juanespitiarobotica 0:834b339f5f94 13 I2C i2c_lcd(D7,D6);
juanespitiarobotica 0:834b339f5f94 14 TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780);
juanespitiarobotica 0:834b339f5f94 15 max6675 sensor(D12,D13,D5);
juanespitiarobotica 0:834b339f5f94 16 Serial pc(USBTX,USBRX);
juanespitiarobotica 0:834b339f5f94 17 Thread thread;
juanespitiarobotica 0:834b339f5f94 18 Thread thread1;
juanespitiarobotica 0:834b339f5f94 19 Thread thread2;
juanespitiarobotica 0:834b339f5f94 20 Thread thread3;
20172573063 1:0371f6d48091 21 Thread thread4;
juanespitiarobotica 0:834b339f5f94 22
20172573063 1:0371f6d48091 23 DigitalOut gpo(D0);
20172573063 1:0371f6d48091 24 SLCD slcd;
20172573063 1:0371f6d48091 25
20172573063 1:0371f6d48091 26 void pantallalcd()
20172573063 1:0371f6d48091 27 {
juanespitiarobotica 0:834b339f5f94 28 lcd.setMode(TextLCD::DispOn);
juanespitiarobotica 0:834b339f5f94 29 lcd.setBacklight(TextLCD::LightOn);
juanespitiarobotica 0:834b339f5f94 30 lcd.setCursor(TextLCD::CurOff_BlkOff);
20172573063 1:0371f6d48091 31 }
20172573063 1:0371f6d48091 32
juanespitiarobotica 0:834b339f5f94 33 void temp_hora()
juanespitiarobotica 0:834b339f5f94 34 {
juanespitiarobotica 2:828a15eaad12 35 set_time(1591802062-18000);
juanespitiarobotica 0:834b339f5f94 36 int cf = 0;
juanespitiarobotica 0:834b339f5f94 37 while (1) {
juanespitiarobotica 0:834b339f5f94 38 time_t seconds = time(NULL);
juanespitiarobotica 0:834b339f5f94 39 float temp = sensor.gettemp(cf);
juanespitiarobotica 2:828a15eaad12 40 //printf("%d", seconds);
juanespitiarobotica 2:828a15eaad12 41 //printf("Fecha= %s", ctime(&seconds));
juanespitiarobotica 0:834b339f5f94 42
juanespitiarobotica 0:834b339f5f94 43 char buffer[32];
juanespitiarobotica 0:834b339f5f94 44 strftime(buffer, 32, "%H:%M:%S ", localtime(&seconds));
juanespitiarobotica 2:828a15eaad12 45 lcd.locate(0,1);
juanespitiarobotica 2:828a15eaad12 46 lcd.printf("%s", buffer);
juanespitiarobotica 0:834b339f5f94 47
juanespitiarobotica 2:828a15eaad12 48 //printf("%4.2f%cF \n\033[2K\033[1A",temp,176);
juanespitiarobotica 0:834b339f5f94 49 lcd.locate(0,0);
juanespitiarobotica 2:828a15eaad12 50 lcd.printf("temp:%1.2f",temp);
juanespitiarobotica 2:828a15eaad12 51 lcd.locate(11,0);
juanespitiarobotica 2:828a15eaad12 52 lcd.printf(" ");
20172573063 1:0371f6d48091 53
juanespitiarobotica 0:834b339f5f94 54 Thread::wait(1000);
juanespitiarobotica 0:834b339f5f94 55 }
juanespitiarobotica 0:834b339f5f94 56 }
juanespitiarobotica 0:834b339f5f94 57
juanespitiarobotica 0:834b339f5f94 58 void servo()
juanespitiarobotica 0:834b339f5f94 59 {
juanespitiarobotica 0:834b339f5f94 60
juanespitiarobotica 0:834b339f5f94 61 servomotor.calibrate(0.001, 180);
juanespitiarobotica 0:834b339f5f94 62
juanespitiarobotica 0:834b339f5f94 63 while(1) {
juanespitiarobotica 0:834b339f5f94 64 for(int i=0; i<100; i++) {
juanespitiarobotica 0:834b339f5f94 65 servomotor = i*0.01;
juanespitiarobotica 2:828a15eaad12 66 //printf("%d",i);
juanespitiarobotica 0:834b339f5f94 67 Thread::wait(100);
juanespitiarobotica 0:834b339f5f94 68 }
juanespitiarobotica 0:834b339f5f94 69 for(int i=100; i>0; i--) {
juanespitiarobotica 0:834b339f5f94 70 servomotor = i*0.01;
juanespitiarobotica 2:828a15eaad12 71 //printf("%d",i);
juanespitiarobotica 0:834b339f5f94 72 Thread::wait(100);
juanespitiarobotica 0:834b339f5f94 73 }
juanespitiarobotica 0:834b339f5f94 74 }
juanespitiarobotica 0:834b339f5f94 75 }
juanespitiarobotica 0:834b339f5f94 76
juanespitiarobotica 0:834b339f5f94 77 void ultra()
juanespitiarobotica 0:834b339f5f94 78 {
juanespitiarobotica 0:834b339f5f94 79 while(1) {
juanespitiarobotica 0:834b339f5f94 80 float distancia=ultrasonido.getCm();
juanespitiarobotica 2:828a15eaad12 81 //lcd.locate(0,1);
juanespitiarobotica 2:828a15eaad12 82 printf("distancia:%2.f cm\n",distancia);
juanespitiarobotica 2:828a15eaad12 83 //lcd.locate(11,1);
juanespitiarobotica 2:828a15eaad12 84 //lcd.printf(" ");
juanespitiarobotica 0:834b339f5f94 85 Thread::wait(1000);
juanespitiarobotica 0:834b339f5f94 86 }
20172573063 1:0371f6d48091 87 }
20172573063 1:0371f6d48091 88 void seg()
20172573063 1:0371f6d48091 89 {
20172573063 1:0371f6d48091 90 while (true) {
20172573063 1:0371f6d48091 91 float distancia=ultrasonido.getCm();
20172573063 1:0371f6d48091 92 slcd.printf("%1.3f",distancia);
20172573063 1:0371f6d48091 93 Thread::wait(1000);
20172573063 1:0371f6d48091 94 }
20172573063 1:0371f6d48091 95 }
juanespitiarobotica 0:834b339f5f94 96
juanespitiarobotica 0:834b339f5f94 97
juanespitiarobotica 0:834b339f5f94 98 int main()
juanespitiarobotica 0:834b339f5f94 99 {
juanespitiarobotica 0:834b339f5f94 100 thread.start((ultra));
juanespitiarobotica 2:828a15eaad12 101 thread.set_priority (osPriorityNormal);
juanespitiarobotica 0:834b339f5f94 102 thread1.start ((servo));
juanespitiarobotica 2:828a15eaad12 103 //thread1.set_priority (osPriorityNormal1);
juanespitiarobotica 0:834b339f5f94 104 thread2.start ((temp_hora));
juanespitiarobotica 2:828a15eaad12 105 //thread2.set_priority (osPriorityNormal2);
juanespitiarobotica 2:828a15eaad12 106 thread3.start((pantallalcd));
juanespitiarobotica 2:828a15eaad12 107 //thread3.set_priority (osPriorityNormal);
20172573063 1:0371f6d48091 108 thread4.start ((seg));
juanespitiarobotica 2:828a15eaad12 109 //thread4.set_priority (osPriorityNormal3);
juanespitiarobotica 2:828a15eaad12 110 thread.join();
juanespitiarobotica 2:828a15eaad12 111 //ThisThread::sleep_for(5000);
juanespitiarobotica 2:828a15eaad12 112
juanespitiarobotica 2:828a15eaad12 113
juanespitiarobotica 0:834b339f5f94 114
juanespitiarobotica 0:834b339f5f94 115 }