Professional Documents
Culture Documents
h>
#include <LiquidCrystal_I2C.h>
// CB VẬT CẢN
int demcao = 0;
int demvua = 0;
int demthap = 0;
int gtreset;
int van_LOW = 2;
int van_MID = 3;
int van_HIGH = 4;
// Motor Variables
int ENA = 9;
int IN1 = 8;
int IN2 = 7;
void setup()
{
pinMode(reset, INPUT_PULLUP);
pinMode(sensor_LOW, INPUT);
pinMode(sensor_MID, INPUT);
pinMode(sensor_HIGH, INPUT);
Serial.begin(9600);
lcd.setCursor(1,0);
lcd.print("HIGH");
lcd.setCursor(7,0);
lcd.print("MID");
lcd.setCursor(12,0);
lcd.print("LOW");
lcd.setCursor(2,1);
lcd.print(demcao);
lcd.setCursor(8,1);
lcd.print(demvua);
lcd.setCursor(13,1);
lcd.print(demthap);
void loop()
{
gtreset = digitalRead(reset);
int gtcao=digitalRead(sensor_HIGH);//Đọc giá trị digital từ cảm biến và gán vào biến giatri
int gtvua=digitalRead(sensor_MID);
analogWrite(ENA,255);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
if(gtreset == 0)
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
lcd.print("RESET.......");
delay (1000);
resetBoard();
if ( gtcao== HIGH && preCAO==LOW ) //gia trị đọc từ cảm biến khác giá trị mặc định
digitalWrite(van_HIGH,HIGH);
lcd.setCursor(2,1);
lcd.print(demcao);
delay(1200);
digitalWrite(van_HIGH,LOW);
else if (gtvua== HIGH && gtcao== LOW && preVUA==LOW ) //gia trị đọc từ cảm biến khác giá trị
mặc định
digitalWrite(van_MID,HIGH);
lcd.print(demvua);
delay(1200);
digitalWrite(van_MID,LOW);
else if (gtthap== HIGH && gtvua== LOW && gtcao== LOW && preTHAP==LOW ) //gia trị đọc từ cảm
biến khác giá trị mặc định
digitalWrite(van_LOW,HIGH);
lcd.setCursor(13,1);
lcd.print(demthap);
delay(1200);
digitalWrite(van_LOW,LOW);
void resetBoard()
asm volatile ("jmp 0"); //Nhảy về dòng đầu tiên của chương trình