- Componentes: 2 Motores + 1 Placa ponte H + 1 Sensor Infravermelho + Fios.
- Descrição: Conforme passa a mão na frente do sensor infravermelho o motor1(conta as unidades) gira puxando um barbante com um ponteiro mostrando na parede os números das unidades, a cada 10 passadas de mão no sensor o motor2(Contador de dezenas) gira fazendo com que suba um na dezena.
Projeto criado para fins educacionais, ou seja, ensinar unidades e dezenas para crianças de uma forma mais tecnológica.
- Código no scratch for Arduíno: Um jeito mais fácil de programar Arduíno, também voltado para a educação infantil, uma forma de programar graficamente, simplesmente arrastando as funções.
Código:
int unidadeS = 5;
int unidadeD = 6;
int dezenaS = 10;
int dezenaD = 11;
int sensor = A0;
int velU = 120; //velocidade motor unidade
int velD = 180; //velocidade motor dezena
int contador = 0; //contador das unidades
int contadorD = 0; //contador das dezenas
int vezes = 0; //conta quantas vezes (até 2) o motor das unidades desceu (se == 2 sobe dezena)
void setup()
{
pinMode(unidadeS,OUTPUT);
pinMode(unidadeD,OUTPUT);
pinMode(dezenaS,OUTPUT);
pinMode(dezenaD,OUTPUT);
pinMode(sensor,INPUT);
}
void loop()
{
//Lẽ o sensor
int sensor = analogRead(sensor);
//se alguem passou pelo sensor
if (sensor > 350){
//sobe uma unidade
analogWrite(unidadeS,velU);
delay(350);
analogWrite(unidadeS,0);
contador++;
//se o contador for == 5, entao desce o motor das unidades
if(contador == 5){
analogWrite(unidadeD,velU);
delay(570);
analogWrite(unidadeD,0);
contador = 0;
vezes++;
}
//caso as unidades chegaram 2 vezes até 5
if(vezes == 2){
analogWrite(dezenaS,velD);
delay(200);
analogWrite(dezenaS,0);
vezes = 0;
contadorD++;
}
//se o contador da dezena for == 5 entao desce o motor das dezenas
if (contadorD == 5){
analogWrite(dezenaD,velD);
delay(900);
analogWrite(dezenaD,0);
contadorD = 0;
}
//sempre que passar alguem pelo sensor, espera 1 segundo para ler o proximo (evitar ficar com a mao em cima)
delay(1000);
}
}