Alguns vídeos mostrando como jogar sudoku.
Inscreva-se no meu canal do youtube para ver mais vídeos como esse!
Confira aqui postagens sobre Arduino, Eletrônica e outros assuntos!
Youtube:
youtube.com/fabianoallex
Facebook:
facebook.com/dicasarduino
int PIN_ENTRADA = A0; int PIN_SAIDA_1 = 3; int PIN_SAIDA_2 = 4; int PIN_SAIDA_3 = 5; int PIN_SAIDA_4 = 6; void setup(void) { Serial.begin(9600); pinMode(PIN_SAIDA_1, OUTPUT); pinMode(PIN_SAIDA_2, OUTPUT); pinMode(PIN_SAIDA_3, OUTPUT); pinMode(PIN_SAIDA_4, OUTPUT); } void loop(void) { int val_entrada = analogRead(PIN_ENTRADA); float voltagem = val_entrada * (5 / 1023.0); Serial.println(voltagem); trataEntrada(voltagem); delay(100); } void trataEntrada(float v){ int led1, led2, led3, led4; led1 = led2 = led3 = led4 = 0; if (v >= 0.40 && v < 0.84) {led1 = 0; led2 = 0; led3 = 0; led4 = 1;} if (v >= 0.84 && v < 1.21) {led1 = 0; led2 = 0; led3 = 1; led4 = 0;} if (v >= 1.21 && v < 1.56) {led1 = 0; led2 = 0; led3 = 1; led4 = 1;} if (v >= 1.56 && v < 1.83) {led1 = 0; led2 = 1; led3 = 0; led4 = 0;} if (v >= 1.83 && v < 2.06) {led1 = 0; led2 = 1; led3 = 0; led4 = 1;} if (v >= 2.06 && v < 2.25) {led1 = 0; led2 = 1; led3 = 1; led4 = 0;} if (v >= 2.25 && v < 2.44) {led1 = 0; led2 = 1; led3 = 1; led4 = 1;} if (v >= 2.44 && v < 2.60) {led1 = 1; led2 = 0; led3 = 0; led4 = 0;} if (v >= 2.60 && v < 2.73) {led1 = 1; led2 = 0; led3 = 0; led4 = 1;} if (v >= 2.73 && v < 2.85) {led1 = 1; led2 = 0; led3 = 1; led4 = 0;} if (v >= 2.85 && v < 2.96) {led1 = 1; led2 = 0; led3 = 1; led4 = 1;} if (v >= 2.96 && v < 3.06) {led1 = 1; led2 = 1; led3 = 0; led4 = 0;} if (v >= 3.06 && v < 3.15) {led1 = 1; led2 = 1; led3 = 0; led4 = 1;} if (v >= 3.15 && v < 3.23) {led1 = 1; led2 = 1; led3 = 1; led4 = 0;} if (v >= 3.23 && v < 5.00) {led1 = 1; led2 = 1; led3 = 1; led4 = 1;} if (led1) { digitalWrite(PIN_SAIDA_1, HIGH); } else { digitalWrite(PIN_SAIDA_1, LOW); } if (led2) { digitalWrite(PIN_SAIDA_2, HIGH); } else { digitalWrite(PIN_SAIDA_2, LOW); } if (led3) { digitalWrite(PIN_SAIDA_3, HIGH); } else { digitalWrite(PIN_SAIDA_3, LOW); } if (led4) { digitalWrite(PIN_SAIDA_4, HIGH); } else { digitalWrite(PIN_SAIDA_4, LOW); } }
int PIN_ENTRADA = A0; int PIN_SAIDA_1 = 8; int PIN_SAIDA_2 = 9; int PIN_SAIDA_3 = 10; int PIN_SAIDA_4 = 11; float vcc = 5; float modo_1_voltagem = 4.55; // 100 / (100+10) * 5 float modo_2_voltagem = 4.16; // 100 / (100+20) * 5 float modo_3_voltagem = 3.84; // 100 / (100+30) * 5 float modo_4_voltagem = 3.57; // 100 / (100+40) * 5 int modo_saida = 0; //0: desliga //variaveis para controle de liga e desliga const long DEBOUNCE_DELAY = 100; int pino_anterior = 0; //armazena o status da leitura no loop anterior int pino_anterior_db = 0; long time_ultimo_debounce = 0; int debounce_ok = 1; void setup(void) { Serial.begin(9600); pinMode(PIN_ENTRADA, INPUT); pinMode(PIN_SAIDA_1, OUTPUT); pinMode(PIN_SAIDA_2, OUTPUT); pinMode(PIN_SAIDA_3, OUTPUT); pinMode(PIN_SAIDA_4, OUTPUT); } void loop(void) { int val_entrada = analogRead(PIN_ENTRADA); float voltagem = val_entrada * (vcc / 1023.0); setModoSaida(voltagem); mostraSaida(); if (voltagem > 2.00) { //Serial.println(voltagem); } delay(10); } void setModoSaida(float v){ modo_saida = 0; if (( v >= ( (modo_1_voltagem + modo_2_voltagem)/2) )) { modo_saida = 1; } if (( v >= ( (modo_2_voltagem + modo_3_voltagem)/2 )) && ( v < ( (modo_1_voltagem + modo_2_voltagem)/2) )) { modo_saida = 2; } if (( v >= ( (modo_3_voltagem + modo_4_voltagem)/2 )) && ( v < ( (modo_2_voltagem + modo_3_voltagem)/2) )) { modo_saida = 3; } if (( v >= ( modo_4_voltagem * 0.9 )) && ( v < ( (modo_3_voltagem + modo_4_voltagem)/2) )) { modo_saida = 4; } } void mostraSaida(){ int pino = 0; if (modo_saida == 0) { pino = 0; } if (modo_saida == 1) { pino = PIN_SAIDA_1; } if (modo_saida == 2) { pino = PIN_SAIDA_2; } if (modo_saida == 3) { pino = PIN_SAIDA_3; } if (modo_saida == 4) { pino = PIN_SAIDA_4; } if ( pino != pino_anterior ) { time_ultimo_debounce = millis(); debounce_ok = 0; } if ( (millis() - time_ultimo_debounce) > DEBOUNCE_DELAY ) { debounce_ok = 1; } Serial.print("pino: " ); Serial.print(pino); Serial.print(" - pino ant: "); Serial.print(pino_anterior); Serial.print(" - pino ant db: "); Serial.print(pino_anterior_db); Serial.println(""); if (debounce_ok == 1){ if (pino > 0 && pino_anterior_db == 0){ digitalWrite(pino, !digitalRead(pino)); } pino_anterior_db = pino; } else { pino_anterior_db = 0; pino_anterior = 0; } pino_anterior = pino; }
const int PINO_LED_1 = 3; const int PINO_LED_2 = 5; const int PINO_LED_3 = 6; const int PINO_LED_4 = 9; void setup() { pinMode(PINO_LED_1, OUTPUT); pinMode(PINO_LED_2, OUTPUT); pinMode(PINO_LED_3, OUTPUT); pinMode(PINO_LED_4, OUTPUT); } void loop() { piscaLedFade(PINO_LED_1, 2000, 1500, 000, 1000, 1000); piscaLedFade(PINO_LED_2, 2000, 1500, 200, 1000, 1000); piscaLedFade(PINO_LED_3, 4000, 1500, 400, 1000, 1000); piscaLedFade(PINO_LED_4, 4000, 1500, 600, 1000, 1000); } void piscaLedFade(int pin, int timeOn, int timeOff, int atraso, int timeFadeOn, int timeFadeOff){ long resto = (millis()-atraso) % (timeOn + timeOff); long fade = (resto < timeOn ? 255 : 0); if (fade > 0){ if ( timeFadeOn > resto ) { fade = resto * 255 / timeFadeOn; } if ( (timeOn-timeFadeOff) < resto ) { fade = (timeOn-resto) * 255 / timeFadeOff; } } analogWrite(pin, fade); }