Professional Documents
Culture Documents
h>
#include <LiquidCrystal_I2C.h>
#include <rExcel.h>
#include <Servo.h>
#include "DHT.h"
/*
char worksheet[16]; // worksheet name
char range[16]; // range set
unsigned int row; // row
unsigned int column; // column
*/
char value[16]; // written or read value
#define menu 12
#define enter 11
#define PINODHT 13 //Pino para comunica��o com DHT
#define TIPODHT DHT22 //DHT22(AM2302/ AM2321)
void readButts();
void planilha();
void list_menu();
void menu_select();
void in1();
boolean menu_flag = 0,
enter_flag = 0,
sub_menu = 0;
void setup(){
pinMode(menu, INPUT_PULLUP);
pinMode(enter, INPUT_PULLUP);
Serial.begin(115200);
//delay(1000);
lcd.begin (16,4);
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print(">");
// rx buffer clearing
myExcel.clearInput();
// if analog input pin 5 is unconnected, random analog noise will cause the call
to randomSeed() to generate different seed numbers each time the sketch runs
randomSeed(analogRead(5));
myservo.attach(3); //sinalservo
void loop() {
//LCD
if(!sub_menu)
{
lcd.setCursor(1,line[0]);
lcd.print("1) Motor ");
lcd.setCursor(1,line[1]);
lcd.print("2) Light ");
lcd.setCursor(1,line[2]);
lcd.print("3) Valve ");
lcd.setCursor(1,line[3]);
lcd.print("4) Actuator ");
lcd.setCursor(1,line[4]);
lcd.print("5) Help ");
}
readButts();
planilha();
void planilha()
{
// Output Task
// Arduino acts as client making requests to Excel
// instructions performed each outputTiming ms
if ((loopTime - time1) >= outputTiming) {
time1 = loopTime;
/*
1� Declara variavel "int" no inicio, int xxxPin = x;
2� No setup declarar saida pinMode(xxxPin,OUTPUT);
3� if(ent_analog0>=4) digitalWrite(ledPin,HIGH);
else digitalWrite(ledPin,LOW);
*/
if(ent_analog1<=2) digitalWrite(rele,LOW);
else digitalWrite(rele,HIGH);
// look the following examples and modify the code as you need
//HIST�RICO
myExcel.writeIndexed("Embarcados", idx+52, 4, idx);
myExcel.writeIndexed("Embarcados", idx+52, 5,"%date%");
myExcel.writeIndexed("Embarcados", idx+52, 6,"%time%");
myExcel.writeIndexed("Embarcados", idx+52, 7, ent_analog0, 2);
myExcel.writeIndexed("Embarcados", idx+52, 8, ent_analog1, 2);
myExcel.writeIndexed("Embarcados", idx+52, 9, ent_analog2, 2);
// myExcel.writeIndexed("Embarcados", idx+52, 10, ent_analog3, 2);
myExcel.writeIndexed("Embarcados", idx+52, 11, ent_analog4, 2);
myExcel.writeIndexed("Embarcados", idx+52, 12, ent_analog5, 2);
idx++;
void readButts()
{
} //end if menu
} //end if menu
} //end readButts
void list_menu()
{
for(int i=4; i>-1; i--)
{
index = i-1;
line_bk[i] = line[i];
} //end list_menu
//O VOID ABAIXO N�O ATUALIZA O VALOR NO LCD, SOMENTE APRESENTA E CONGELA, COMO
CRIAR UM "LOOP DENTRO DO CASE"?.
void menu_select()
{
switch(menu_number)
{
case 1:
lcd.setCursor(1,0);
lcd.print("Motor Control ");
lcd.setCursor(0,1);
lcd.print(ent_analog1);
break;
case 2:
lcd.setCursor(1,0);
lcd.print("Light Control ");
lcd.setCursor(0,1);
lcd.print(" ");
break;
case 3:
lcd.setCursor(1,0);
lcd.print("Valve Control ");
lcd.setCursor(0,1);
lcd.print(" ");
break;
case 4:
lcd.setCursor(1,0);
lcd.print("Actuator Ctrl ");
lcd.setCursor(0,1);
lcd.print(" ");
break;
case 5:
lcd.setCursor(1,0);
lcd.print("Help System ");
lcd.setCursor(0,1);
lcd.print(" ");
break;
} //end switch
}//end menu_select