AULA 11 - Microcontroladores - Eng: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud Sem resumo de edição |
imported>Fargoud |
||
| Linha 18: | Linha 18: | ||
==Firmware== | ==Firmware== | ||
#include <Stepper.h> | |||
int led1 = 2, led2 = 3; //associa o primeiro led à porta digital 1 e o segundo, à porta 2 | |||
const int buttonPin = 4; // o numero do pino do botão | |||
int buttonState = 0; // variavel para ler o estado do botao | |||
int flag =0; | |||
const int stepsPerRevolution = 500; | |||
Stepper myStepper(stepsPerRevolution, 8,10,9,11); | |||
void setup() | |||
{ | |||
myStepper.setSpeed(60); //Determina a velocidade inicial do motor | |||
pinMode(led1, OUTPUT); //configura porta digital 1 como saída | |||
pinMode(led2,OUTPUT); //configura porta digital 2 como saída | |||
pinMode(buttonPin, INPUT); //configura porta digital 3 como entrada | |||
} | |||
void loop() | |||
{ | |||
// faz a leitura do valor do botao: | |||
buttonState = digitalRead(buttonPin); | |||
// verifica se o botao esta pressionado. | |||
// em caso positivo, buttonState é HIGH: | |||
if (buttonState == LOW && flag==1) | |||
{ | |||
//LEDs apagados: | |||
digitalWrite(led1, LOW); //APAGADO o primeiro led | |||
digitalWrite(led2, LOW); //APAGADO o segundo led | |||
flag==0; | |||
} | |||
if (buttonState == HIGH && flag==0) | |||
{ | |||
//LEDs acendem: PARA CADA LED QUE ACENDE EQUIVALE A 1H | |||
digitalWrite(led1, HIGH); //ACENDE o primeiro led | |||
delay(2000); | |||
digitalWrite(led2, HIGH); //ACENDE o segundo led | |||
delay(3000); | |||
flag==1; | |||
// pisca os LEDs: INDICANDO QUE ESTÁ NA HORA DO ANIMAL COMER | |||
digitalWrite(led1, LOW); //APAGA o primeiro led | |||
digitalWrite(led2, LOW); //APAGA o segundo led | |||
delay(500); | |||
digitalWrite(led1, HIGH); //acende o primeiro led | |||
digitalWrite(led2, HIGH); //acende o segundo led | |||
delay(500); | |||
digitalWrite(led1, LOW); //APAGA o primeiro led | |||
digitalWrite(led2, LOW); //APAGA o segundo led | |||
delay(500); | |||
digitalWrite(led1, HIGH); //acende o primeiro led | |||
digitalWrite(led2, HIGH); //acende o segundo led | |||
delay(500); | |||
digitalWrite(led1, LOW); //APAGA o primeiro led | |||
digitalWrite(led2, LOW); //APAGA o segundo led | |||
delay(500); | |||
digitalWrite(led1, HIGH); //acende o primeiro led | |||
digitalWrite(led2, HIGH); //acende o segundo led | |||
delay(500); | |||
digitalWrite(led1, LOW); //APAGA o primeiro led | |||
digitalWrite(led2, LOW); //APAGA o segundo led | |||
delay(500); | |||
digitalWrite(led1, HIGH); //acende o primeiro led | |||
digitalWrite(led2, HIGH); //acende o segundo led | |||
//Gira o motor no sentido horario a 360 graus | |||
for (int i = 0; i<=3; i++) | |||
{ | |||
myStepper.step(-2048); | |||
delay(2000); | |||
} | |||
digitalWrite(led1, LOW); //APAGA o primeiro led | |||
digitalWrite(led2, LOW); //APAGA o segundo led | |||
} | |||
} | |||
--------------- | --------------- | ||
Edição das 17h01min de 26 de setembro de 2018
Trabalho Davi
Protótipo
Hardware/Eletrônica
Partes Mecânicas
[ Projeto 2 Alimentador de peixes Davi]
Firmware
#include <Stepper.h>
int led1 = 2, led2 = 3; //associa o primeiro led à porta digital 1 e o segundo, à porta 2
const int buttonPin = 4; // o numero do pino do botão
int buttonState = 0; // variavel para ler o estado do botao
int flag =0;
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
void setup()
{
myStepper.setSpeed(60); //Determina a velocidade inicial do motor
pinMode(led1, OUTPUT); //configura porta digital 1 como saída
pinMode(led2,OUTPUT); //configura porta digital 2 como saída
pinMode(buttonPin, INPUT); //configura porta digital 3 como entrada
}
void loop()
{
// faz a leitura do valor do botao:
buttonState = digitalRead(buttonPin);
// verifica se o botao esta pressionado.
// em caso positivo, buttonState é HIGH:
if (buttonState == LOW && flag==1)
{
//LEDs apagados:
digitalWrite(led1, LOW); //APAGADO o primeiro led
digitalWrite(led2, LOW); //APAGADO o segundo led
flag==0;
}
if (buttonState == HIGH && flag==0)
{
//LEDs acendem: PARA CADA LED QUE ACENDE EQUIVALE A 1H
digitalWrite(led1, HIGH); //ACENDE o primeiro led
delay(2000);
digitalWrite(led2, HIGH); //ACENDE o segundo led
delay(3000);
flag==1;
// pisca os LEDs: INDICANDO QUE ESTÁ NA HORA DO ANIMAL COMER
digitalWrite(led1, LOW); //APAGA o primeiro led
digitalWrite(led2, LOW); //APAGA o segundo led
delay(500);
digitalWrite(led1, HIGH); //acende o primeiro led
digitalWrite(led2, HIGH); //acende o segundo led
delay(500);
digitalWrite(led1, LOW); //APAGA o primeiro led
digitalWrite(led2, LOW); //APAGA o segundo led
delay(500);
digitalWrite(led1, HIGH); //acende o primeiro led
digitalWrite(led2, HIGH); //acende o segundo led
delay(500);
digitalWrite(led1, LOW); //APAGA o primeiro led
digitalWrite(led2, LOW); //APAGA o segundo led
delay(500);
digitalWrite(led1, HIGH); //acende o primeiro led
digitalWrite(led2, HIGH); //acende o segundo led
delay(500);
digitalWrite(led1, LOW); //APAGA o primeiro led
digitalWrite(led2, LOW); //APAGA o segundo led
delay(500);
digitalWrite(led1, HIGH); //acende o primeiro led
digitalWrite(led2, HIGH); //acende o segundo led
//Gira o motor no sentido horario a 360 graus
for (int i = 0; i<=3; i++)
{
myStepper.step(-2048);
delay(2000);
}
digitalWrite(led1, LOW); //APAGA o primeiro led
digitalWrite(led2, LOW); //APAGA o segundo led
}
}
Trabalho Júlia
Protótipo
Hardware/Eletrônica
Partes Mecânicas
Vídeos do dispositivo:
Firmware
#include <LiquidCrystal.h> //Inclui biblioteca do LCD
#include <Stepper.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int stepsPerRevolution = 500;
//Inicializa a biblioteca utilizando as portas de 8,9,10 e 13 para
//ligacao ao motor
Stepper myStepper(stepsPerRevolution, 8,10,9,13);
int segundo,minuto,hora,dia,mes,ano;
unsigned long UtlTime;
void setup(){
//Determina a velocidade inicial do motor
myStepper.setSpeed(60);
//Para o LCD
UtlTime=0;
minuto=0;
hora=0;
dia=0;
mes=0;
ano=0;
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(" Data e hora ");
lcd.setCursor(0,1);
lcd.print(" com Arduino");
delay (2000);
//Configura o minuto
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Minuto: ");
Serial.print("\nEntre Minuto:");
while(minuto==0){
if (Serial.available() > 0){
minuto= Serial.parseInt();
Serial.print(minuto);
}
}
lcd.print(minuto);
delay(1000);
//Configura a hora
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hora: ");
Serial.print("\nEntre Hora:");
while(hora==0){
if (Serial.available() > 0){
hora= Serial.parseInt();
Serial.print(hora);
}
}
lcd.print(hora);
delay(1000);
//Configura o Dia
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Dia: ");
Serial.print("\nEntre Dia:");
while(dia==0)
{
if (Serial.available() > 0){
dia= Serial.parseInt();
Serial.print(dia);
}
}
lcd.print(dia);
delay(1000);
//Configura o mês
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mes: ");
Serial.print("\nEntre Mes:");
while(mes==0)
{
if (Serial.available() > 0){
mes= Serial.parseInt();
Serial.print(mes);
}
}
lcd.print(mes);
delay(1000);
//Configura o Ano
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ano: ");
Serial.print("\nEntre ano:");
while(ano==0){
if (Serial.available() > 0){
ano= Serial.parseInt();
Serial.print(ano);
}
}
lcd.print(ano);
delay(1000);
lcd.clear();
}
void EscreveDataHora(){
if(millis()-UtlTime<0){
UtlTime=millis();
}
else{
segundo=int((millis()-UtlTime)/1000);
}
if(segundo>59){
segundo=00;
lcd.clear();
minuto++;
UtlTime=millis();
if(minuto>59){
hora++;
lcd.clear();
minuto=00;
if(hora>23){
dia++;
hora=00;
if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12){
if(dia>31){
dia=1;
mes++;
if(mes>12){
ano++;
mes=1;
}
}
}
else if(mes==2){
if(ano%400==0){
if(dia>29){
dia=1;
mes++;
}
}
else if((ano%4==0)&&(ano%100!=0)){
if(dia>29){
dia=1;
mes++;
}
}
else{
if(dia>28){
dia=1;
mes++;
}
}
}
else{
if(dia>30){
dia=1;
mes++;
}
}
}
}
}
lcd.setCursor(0,0);
lcd.print("Data ");
lcd.print(dia);
lcd.print("/");
lcd.print(mes);
lcd.print("/");
lcd.print(ano);
lcd.setCursor(0,1);
lcd.print("Hora ");
lcd.print(hora);
lcd.print(":");
lcd.print(minuto);
lcd.print(":");
lcd.print(segundo);
}
void SelecionaHoraAlimentaPET(){
//Seleciona a hora da refeição
int h=15;
//Seleciona os minutos da refeição
int m=15;
//Mostra no DISPLAY
if(hora==h&&minuto==m&&segundo>=30){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Hora da racao ");
lcd.setCursor(0,1);
lcd.print(" Bom apetite! ");
//Liga o motor
LigaMotor();
}
else{
lcd.clear();
EscreveDataHora();
}
}
void LigaMotor(){
//O motor faz 2 giros completos
for (int i = 0; i<=2; i++)
{
myStepper.step(2048);
delay(2000);
}
delay(2000);
}
void loop(){
EscreveDataHora();
SelecionaHoraAlimentaPET();
}
Trabalho Nelson
Protótipo
Hardware/Eletrônica
Partes Mecânicas
[ Projeto 2 Alimentador de gatos Nelson]
Firmware
Trabalho Thiago
Protótipo
Hardware/Eletrônica
Vídeo Projeto 2 Alimentador de peixes Thiago
Partes Mecânicas
Firmware
#include <LiquidCrystal.h> //Inclui biblioteca do LCD
#include <Stepper.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int stepsPerRevolution = 500;
//Inicializa a biblioteca utilizando as portas de 8,9,10 e 13 para
//ligacao ao motor
Stepper myStepper(stepsPerRevolution, 8,10,9,13);
int segundo,minuto,hora,dia,mes,ano;
unsigned long UtlTime;
void setup(){
//Determina a velocidade inicial do motor
myStepper.setSpeed(60);
//Para o LCD
UtlTime=0;
minuto=0;
hora=0;
dia=0;
mes=0;
ano=0;
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(" Data e hora ");
lcd.setCursor(0,1);
lcd.print(" com Arduino");
delay (2000);
//Configura o minuto
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Minuto: ");
Serial.print("\nEntre Minuto:");
while(minuto==0){
if (Serial.available() > 0){
minuto= Serial.parseInt();
Serial.print(minuto);
}
}
lcd.print(minuto);
delay(1000);
//Configura a hora
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hora: ");
Serial.print("\nEntre Hora:");
while(hora==0){
if (Serial.available() > 0){
hora= Serial.parseInt();
Serial.print(hora);
}
}
lcd.print(hora);
delay(1000);
//Configura o Dia
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Dia: ");
Serial.print("\nEntre Dia:");
while(dia==0)
{
if (Serial.available() > 0){
dia= Serial.parseInt();
Serial.print(dia);
}
}
lcd.print(dia);
delay(1000);
//Configura o mês
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mes: ");
Serial.print("\nEntre Mes:");
while(mes==0)
{
if (Serial.available() > 0){
mes= Serial.parseInt();
Serial.print(mes);
}
}
lcd.print(mes);
delay(1000);
//Configura o Ano
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ano: ");
Serial.print("\nEntre ano:");
while(ano==0){
if (Serial.available() > 0){
ano= Serial.parseInt();
Serial.print(ano);
}
}
lcd.print(ano);
delay(1000);
lcd.clear();
}
void EscreveDataHora(){
if(millis()-UtlTime<0){
UtlTime=millis();
}
else{
segundo=int((millis()-UtlTime)/1000);
}
if(segundo>59){
segundo=00;
lcd.clear();
minuto++;
UtlTime=millis();
if(minuto>59){
hora++;
lcd.clear();
minuto=00;
if(hora>23){
dia++;
hora=00;
if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12){
if(dia>31){
dia=1;
mes++;
if(mes>12){
ano++;
mes=1;
}
}
}
else if(mes==2){
if(ano%400==0){
if(dia>29){
dia=1;
mes++;
}
}
else if((ano%4==0)&&(ano%100!=0)){
if(dia>29){
dia=1;
mes++;
}
}
else{
if(dia>28){
dia=1;
mes++;
}
}
}
else{
if(dia>30){
dia=1;
mes++;
}
}
}
}
}
lcd.setCursor(0,0);
lcd.print("Data ");
lcd.print(dia);
lcd.print("/");
lcd.print(mes);
lcd.print("/");
lcd.print(ano);
lcd.setCursor(0,1);
lcd.print("Hora ");
lcd.print(hora);
lcd.print(":");
lcd.print(minuto);
lcd.print(":");
lcd.print(segundo);
}
void SelecionaHoraAlimentaPET(){
//Seleciona a hora da refeição
int h=15;
//Seleciona os minutos da refeição
int m=15;
//Mostra no DISPLAY
if(hora==h&&minuto==m&&segundo>=30){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Hora da racao ");
lcd.setCursor(0,1);
lcd.print(" Bom apetite! ");
//Liga o motor
LigaMotor();
}
else{
lcd.clear();
EscreveDataHora();
}
}
void LigaMotor(){
//O motor faz 2 giros completos
for (int i = 0; i<=2; i++)
{
myStepper.step(2048);
delay(2000);
}
delay(2000);
}
void loop(){
EscreveDataHora();
SelecionaHoraAlimentaPET();
}
Trabalho Vitor
Protótipo
Hardware/Eletrônica
Partes Mecânicas
Firmware
| < Projeto 2 - Alimentador automático de pets | AULA 11 - Projeto 2 - Protótipos dos Alunos - Apresentação | Projeto 3 - Sistema de segurança residencial > |
|---|


