/*
Programa integrador dos conteudos do primeiro bimestre
programa baseado em diagrama de estados
em cada estado vai rodar um conteudo diferente da disciplina
a seleção dos conteudos vai ser por uma IHM (interface
homem-máquina) composta por botoes e leds
o nosso sistema será composto por 7 estados, sendo um deles
com 3 sub-estados:
estado 0: inicio
estado 10: leds e buzzer (saídas digitais)
estado 20: potenciometros e led rgb (A/D e PWM)
estado 30: sensor temp analogico
estado 40: servomotor
estado 50: conversor D/A
estado 51: onda quadrada
estado 52: onda triangular ou dente de serra
estado 53: senoide
estado 60: sensor DHT
*/
// Bibliotecas
#include <Wire.h> // Comunicação I2C
#include <LiquidCrystal_I2C.h> // Display LCD I2C
LiquidCrystal_I2C lcd (0x27, 16, 2); // Endereço do Display e dimensões
// Variáveis globais
int estado;
// Protótipos de funções
void inicio();
void leds_e_buzzers();
void pot_led_rgb();
void temperatura();
void servomotor();
void conversor_DA(); // Quadrada, triangular e senoidal (potenciometro seleciona qual /3)
void temp_umid_DHT();
void setup()
{
// inicializar lcd
lcd.init();
lcd.backlight();
}
void loop()
{
// Se os estado for igual a zero, inicio
if(estado == 0)
{
}
// Se o estado for igual a 10, pisca leds e apita buzzer
if(estado == 10)
{
}
// Se o estado for igual a 20, lê pots e varia RGB
if(estado == 20)
{
}
// Se o estado for igual a 40, servomotor e pot
if(estado == 30)
{
}
// Se o estado for igual a 50, conversor d/a
if(estado == 40)
{
}
// Se o estado for igual a 60, DHT (temp ºC e umid)
if(estado == 10)
{
}
}
void inicio()
{
// Escrever na primeira linha do display qual o estado que estou
// Escrever na segunda linha do display a descrição dos botões
// Testar os botões
}