Skip to content

Instantly share code, notes, and snippets.

@alexandre
Created May 30, 2015 23:54
Show Gist options
  • Select an option

  • Save alexandre/0c138a46a92c2ec6c412 to your computer and use it in GitHub Desktop.

Select an option

Save alexandre/0c138a46a92c2ec6c412 to your computer and use it in GitHub Desktop.
Uma tentativa de criar interfaces "didáticas" para o GaroaShield.
//SENSORES
potenciometro = A0
sensor_de_luz = A1
//LEDs do display de 7 segmentos
//superior esquerda
int superior_esquerda = 13;
// superior base(teto)
int superior_base = 8;
//superior direita
int superior_direita = 9;
//central
int central = 7;
//inferior esquerda
int inferior_esquerda = 12;
//inferior base
int inferior_base = 11;
//inferior direita
int inferior_direita = 10;
// ponto decimal
int ponto_decimal = 6;
// a função setup executa uma vez quando se pressiona RESET
void setup() {
pinMode(inferior_direita, OUTPUT);
pinMode(inferior_esquerda, OUTPUT);
pinMode(inferior_base, OUTPUT);
pinMode(central, OUTPUT);
pinMode(superior_direita, OUTPUT);
pinMode(superior_esquerda, OUTPUT);
pinMode(superior_base, OUTPUT);
pinMode(ponto_decimal, OUTPUT);
Serial.begin(9600);
}
//lê um valor do potenciomentro
int ler_valor_do_potenciometro() {
return analogRead(potenciometro);
}
//le um valor do sensor de luminosidade
int ler_valor_do_sensor_de_luz() {
return analogRead(sendor_de_luz);
}
// acende um determinado led e apaga apos o tempo especificado
void acende(int led) {
digitalWrite(led, HIGH);
}
// cria um delay com o valor de milisegundos determinados
void espera(int tempo) {
delay(tempo);
}
// apaga o led especificado
void apaga(int led) {
digitalWrite(led, LOW);
}
//acende e apaga um led conforme a velocidade (milisegundos) especificada.
void pisca(int led, int velocidade) {
acende(led);
espera(velocidade);
apaga(led);
}
// cria o efeito de um oito com a ordem especificada
void efeito_oito(int velocidade) {
pisca(ponto_decimal, velocidade);
pisca(inferior_base, velocidade);
pisca(inferior_esquerda, velocidade);
pisca(central, velocidade);
pisca(superior_direita, velocidade);
pisca(superior_base, velocidade);
pisca(superior_esquerda, velocidade);
pisca(central, velocidade);
pisca(inferior_direita, velocidade);
}
// acende os leds necessarios para formar o numero 1.
void numero_um() {
acende(superior_direita);
acende(inferior_direita);
espera(1000);
apaga(superior_direita);
apaga(inferior_direita);
}
//imprime um valor no Serial monitor
void imprime(int valor) {
Serial.println(valor);
}
// a função loop é executada repetidamente, para sempre
void loop() {
imprime(ler_valor_do_potenciometro());
efeito_oito(ler_valor_do_potenciometro());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment