Pessoal estou precisando de ajuda, pois estou em um projeto de automação mais estou enrolado em algumas coisas. Estou querendo controlar pinos de acordo com a temperatura e umidade, agora eu estou só com o sensor de temperatura LM35. Com relação à temperatura os pinos estão funcionando de acordo com a temperatura conforme o código postado. Estou colocando o cristal liquido (16x2) com isso um respectivo menu. Ai é que esta a parte que estou mais enrolado. Estou postando também o código do menu que peguei na net.
Esse é o código da temperatura:
int ledPin = 13;
int analogPin = 5;
int valAnalog ;
int temperatura ;
int ventilador = 12;
int cortinna = 11;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(ventilador, OUTPUT);
pinMode(cortinna, OUTPUT);
Serial.begin(9600); }
void loop(){
valAnalog = analogRead(analogPin);
temperatura= ( 5 * valAnalog * 100) / 1024 ;
if (temperatura >= 29){
digitalWrite(ventilador, HIGH);
}
else{
digitalWrite(ventilador, LOW);}
if (temperatura < 29)
{
digitalWrite(cortinna, HIGH);
}
else{ digitalWrite(cortinna, LOW);
}
Serial.println(temperatura) ;
delay(5000) ;
piscaLed() ;
}
void piscaLed() {
digitalWrite(ledPin, HIGH);
delay(50) ;
digitalWrite(ledPin, LOW); }
Tags:
E esse é o menu que peguei a biblioteca no site Arduino.cc.
/*
||
|| @description
|| | This is a simple menu system, that uses input from the serial to change and use menuitems.
|| #
||
*/
#include <SubMenuItem.h>
#include <SubMenu.h>
#include <MenuItem.h>
#include <Menu.h>
//initialize menu
Menu menu = Menu(menuUsed,menuChanged);
//initialize menuitems
MenuItem menuItem1 = MenuItem();
MenuItem menuItemWithSubmenu = MenuItem();
SubMenu subMenu = SubMenu(menuChanged);
SubMenuItem subMenuItem1 = SubMenuItem();
SubMenuItem subMenuItem2 = SubMenuItem();
SubMenuItem subMenuItem3 = SubMenuItem();
MenuItem menuItem3 = MenuItem();
void setup(){
Serial.begin(9600);
//configure menu
menu.addMenuItem(menuItem1);
menu.addMenuItem(menuItemWithSubmenu);
menuItemWithSubmenu.addSubMenu(subMenu);
subMenu.addSubMenuItem(subMenuItem1);
subMenu.addSubMenuItem(subMenuItem2);
subMenu.addSubMenuItem(subMenuItem3);
menu.addMenuItem(menuItem3);
menu.select(0);
subMenu.select(0);
}
void loop(){
if (Serial.available()){
switch (Serial.read()){
case 'w':
if (menu.isCurrentSubMenu()){
subMenu.down(); //set index closer to 0
}
break;
case 's':
if (menu.isCurrentSubMenu()){
subMenu.up(); //set index closer to maximum
}
break;
case 'a':
menu.down();
break;
case 'd':
menu.up();
break;
case ' ':
menu.use();
break;
case '0':
menu.select(0);
break;
case '1':
menu.select(1);
break;
case '2':
menu.select(2);
break;
}
}
}
void menuChanged(ItemChangeEvent event){
Serial.println("menuChanged");
if( event == &menuItem1 ){
Serial.println("\tmenuItem1 selected"); //user feedback
}else if( event == &menuItemWithSubmenu ){
Serial.println("\tmenuItemWithSubmenu selected"); //user feedback
}else if( event == &subMenuItem1 ){
Serial.println("\tsubMenuItem1 selected"); //user feedback
}else if( event == &subMenuItem2 ){
Serial.println("\tsubMenuItem2 selected"); //user feedback
}else if( event == &subMenuItem3 ){
Serial.println("\tsubMenuItem3 selected"); //user feedback
}else if( event == &menuItem3 ){
Serial.println("\tmenuItem3 selected"); //user feedback
}
}
void menuUsed(ItemUseEvent event){
Serial.println("menuUsed");
if( event == &menuItem1 ){
Serial.println("\tmenuItem1 used"); //user feedback
}else if( event == &subMenuItem1 ){
Serial.println("\tsubMenuItem1 used"); //user feedback
}else if( event == &subMenuItem2 ){
Serial.println("\tsubMenuItem2 used"); //user feedback
}else if( event == &subMenuItem3 ){
Serial.println("\tsubMenuItem3 used"); //user feedback
}else if( event == &menuItem3 ){
Serial.println("\tmenuItem3 used"); //user feedback
}
}
Estou trabalhando na criação de uma classe para trabalhar com maior facilidade com menus.
Eu ja vi esta biblioteca que você mostrou nos comentário. Achei bastante confuso o modo de trabalho dela. Pois é necessário linkar os itens do menu bem certinho e isto da bastante trabalho e um pouco de dor de cabeça até acertar.
Mas se você tem pouca experiência é interessante usar esta biblioteca, ou lê-la para ver como autor construiu. Basicamente você tem que criar os itens dos menus e depois configural-los, adicionado os menus anteriores e posterios e os itens de subemenus.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por