Simula no Tinkercad Circuits antes de soldar:
LigaΓ§Γ΅es:
D9(PWM) β 1kΞ© β BC547_Base; BC547_Col β Buzzer(β); Buzzer(+) β VCC
D2 β 10kΞ© β VCC; D2 β BotΓ£o_DO β GND
D3 β 10kΞ© β VCC; D3 β BotΓ£o_RE β GND
D4 β 10kΞ© β VCC; D4 β BotΓ£o_MI β GND
D5 β 10kΞ© β VCC; D5 β BotΓ£o_FA β GND
D10(R), D11(G), D12(B) β 220Ξ© β LED_RGB β GNDLiga VCC e GND do header Γ s power rails da protoshield β primeira ligaΓ§Γ£o sempre.
Solda resistΓͺncias e condensadores antes dos semicondutores.
LEDs, transΓstores, CIs β com atenΓ§Γ£o Γ polaridade.
Headers por ΓΊltimo β nΓ£o obstruem o acesso aos outros componentes.
MultΓmetro em continuidade em cada ligaΓ§Γ£o antes de ligar ao Arduino.
#define BUZZER 9
int notas[] = {262, 294, 330, 349}; // DO RE MI FA
int botoes[] = {2, 3, 4, 5};
int rgb[] = {10, 11, 12}; // R, G, B
int cores[][3] = {{255,0,0},{0,255,0},{0,0,255},{255,255,0}};
void setup() {
for (int i=0;i<4;i++) pinMode(botoes[i], INPUT_PULLUP);
for (int i=0;i<3;i++) pinMode(rgb[i], OUTPUT);
}
void loop() {
bool tocou = false;
for (int i=0; i<4; i++) {
if (digitalRead(botoes[i])==LOW) {
tone(BUZZER, notas[i]);
analogWrite(rgb[0], cores[i][0]);
analogWrite(rgb[1], cores[i][1]);
analogWrite(rgb[2], cores[i][2]);
tocou = true;
}
}
if (!tocou) { noTone(BUZZER); analogWrite(rgb[0],0); analogWrite(rgb[1],0); analogWrite(rgb[2],0); }
}