Ir ao conteúdo
  • Cadastre-se

diogo1065

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Boa tarde, estou tentando desenvolver um menu no LCD onde em um dos subtítulos aparecem as medições do DHT22, porém ao invés de aparecer as medições estão aparecendo diversos caracteres em japonês, quando testei o DHT fora do menu estava funcionando normalmente. Alguém consegue me ajudar? #include <LiquidCrystal.h> #include <DHT.h> #define DHTPIN 7 // what pin we're connected to #define DHTTYPE DHT22 // DHT 22 DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino //Variables //int chk; int h; //Stores humidity value int t; //Stores temperature value LiquidCrystal lcd(8,9,4,5,6,7); //lcd int keypad_pin = A0; //lcd int keypad_value = 0; //lcd int keypad_value_old = 0; //lcd char btn_push; //lcd byte mainMenuPage = 1; //lcd byte mainMenuPageOld = 1; //lcd byte mainMenuTotal = 4; //lcd void setup() { Serial.begin(9600); Serial.println("Temperature and Humidity Sensor Test"); dht.begin(); lcd.begin(16,2); //Initialize a 2x16 type LCD MainMenuDisplay(); delay(1000); } void loop() { //Read data and store it to variables h (humidity) and t (temperature) // Reading temperature or humidity takes about 250 milliseconds! h = dht.readHumidity(); t = dht.readTemperature(); //Print temp and humidity values to serial monitor Serial.print("Humidity: "); Serial.print(h); Serial.print(" %, Temp: "); Serial.print(t); Serial.println(" ° Celsius"); btn_push = ReadKeypad(); MainMenuBtn(); if(btn_push == 'S')//enter selected menu { WaitBtnRelease(); switch (mainMenuPage) { case 1: MenuA(); break; case 2: MenuB(); break; case 3: MenuC(); break; case 4: MenuD(); break; } MainMenuDisplay(); WaitBtnRelease(); } delay(10); }//--------------- End of loop() loop --------------------- void MenuA() { lcd.clear(); while(ReadKeypad()!= 'L') { lcd.setCursor(0, 0); lcd.print("T:"); lcd.print(t); lcd.print("C"); } } void MenuB() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu B"); while(ReadKeypad()!= 'L') { //Insert Task for Menu B here } } void MenuC() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu C"); while(ReadKeypad()!= 'L') { //Insert Task for Menu C here } } void MenuD() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu D"); while(ReadKeypad()!= 'L') { //Insert Task for Menu D here } } void MainMenuDisplay() { lcd.clear(); lcd.setCursor(0,0); switch (mainMenuPage) { case 1: lcd.print("1. Menu A"); break; case 2: lcd.print("2. Menu B"); break; case 3: lcd.print("3. Menu C"); break; case 4: lcd.print("4. Menu D"); break; } } void MainMenuBtn() { WaitBtnRelease(); if(btn_push == 'D') { mainMenuPage++; if(mainMenuPage > mainMenuTotal) mainMenuPage = 1; } else if(btn_push == 'U') { mainMenuPage--; if(mainMenuPage == 0) mainMenuPage = mainMenuTotal; } if(mainMenuPage != mainMenuPageOld) //only update display when page change { MainMenuDisplay(); mainMenuPageOld = mainMenuPage; } } char ReadKeypad() { /* Keypad button analog Value no button pressed 1023 select 741 left 503 down 326 up 142 right 0 */ keypad_value = analogRead(keypad_pin); if(keypad_value < 100) return 'R'; else if(keypad_value < 200) return 'U'; else if(keypad_value < 400) return 'D'; else if(keypad_value < 600) return 'L'; else if(keypad_value < 800) return 'S'; else return 'N'; } void WaitBtnRelease() { while( analogRead(keypad_pin) < 800){} }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!