Está de boa nesse sabadão e quer faturar um trocado?
Então basta elaborar programação para arduino do seguinte projeto:
- brinquedo interativo do tipo "labirinto elétrico" (aquele das feiras de ciências da escola, onde vc tem que percorrer um labirinto de arame sem encostar nele)
Requisitos:
- criar uma variável contador que vai contar quantas vezes a pessoa encosta no arame
- cada vez que ela encosta no arame toca um som no buzzer
- quando o contador chegar no número de vezes especificada toca o buzzer com um som diferente (pra pessoa saber que chegou no numero máximo de tentativas)
- no final do arame teremos um ponto onde quando for encostado aciona um relê e liga uma fita de led colorida pra mostrar que chegou ao final.
- Se possivel utilizar a biblioteca bounce2.h para que possamos regular o ruído ao encostar no arame (tipo o filtro usado em pushbottons)
IMPORTANTE: preciso entregar o prototipo na segunda feira, por isso o scketh tem que ser elaborado entre hoje e amanhã cedo.
Suerte muchachos!
Seria mais ou menos isso aqui: (na real o projeto é só fazer isso aqui funcionar)
#include <Bounce2.h>
Bounce debouncer = Bounce();
int CONTADOR = 0;
int ESTADO_ANTERIOR = 0;
void setup() {
pinMode(9, OUTPUT);
pinMode (10, INPUT_PULLUP); // pino no final do arame que aciona a fita led
pinMode (11, OUTPUT); // saida para relê e fita led
pinMode(8, INPUT_PULLUP); // Configura pino 8 como entrada e habilita pull up interno;
debouncer.attach(8); // Informa que o tratamento de debouce será feito no pino 8;
debouncer.interval(200); // Seta o intervalo de trepidação;
}
void loop() {
debouncer.update(); // Executa o algorítimo de tratamento;
int value =
debouncer.read(); // Lê o valor tratado do botão;
if(value!=ESTADO_ANTERIOR)
{
if(value == LOW)
{
CONTADOR++;
}
}
ESTADO_ANTERIOR = value;
switch (CONTADOR) {
case 0:
//fazer algo quando valor == 0
break;
case 1:
digitalWrite(9, HIGH);
delay(200);
digitalWrite(9, LOW);
delay(1000);
break;
case 2:
digitalWrite(9, HIGH);
delay(200);
digitalWrite(9, LOW);
delay(500);
case 3:
digitalWrite(9, HIGH);
delay(200);
digitalWrite(9, LOW);
delay(300);
break;
if (10, HIGH){
digitalWrite (11, HIGH);
delay (400);
digitalWrite (11, LOW);
}
}}
Prazo de Entrega: 12 de Agosto de 2018