Está pronta a árvore de Natal que o Clube de Programação e Robótica construiu em parceria com o Curso Profissional de Informática – Sistemas!
Hardware:
- 40 leds de 5 mm: 5 brancos, 5 amarelos, 5 azuis, 5 verdes e 5 vermelhos (utilizados na árvore);
- 40 leds de 3 mm: 5 brancos, 5 amarelos, 5 azuis, 5 verdes e 5 vermelhos (utilizados apenas na fase de testes);
- 40 resistências de 200 Ω;
- placa Arduino Uno;
- 2 placas de ensaio com 840 pontos;
- cabo elétrico de 0,8 mm de cor azul;
- cabo elétrico de 0,8 mm de cor preta;
- cabo elétrico de 0,8 mm de cor vermelha;
- cabos jumper macho – macho
- 5 circuitos integrados 74HC595
- alicate de corte;
- alicate de pontas planas;
- alicate para descarnar;
- ferro de soldar + solda;
- pistola de cola quente;
- cola líquida;
- fita adesiva;
- arame;
- berbequim de maquetas;
- acetato de encadernação translúcido;
- placas de contraplacado;
- estrutura em cruz de madeira;
- cabo USB.
Software: arduino IDE
Código:
/*
ShiftRegister74HC595 - Library for simplified control of 74HC595 shift registers.
Developed and maintained by Timo Denk and contributers, since Nov 2014.
Additional information is available at https://timodenk.com/blog/shift-register-arduino-library/
Released into the public domain.
*/
#include
// create a global shift register object
// parameters: (data pin, clock pin, latch pin)
ShiftRegister74HC595<5> sr(4, 5, 6);
void setup() {
}
void loop() {
// setting all pins at the same time to either HIGH or LOW
sr.setAllHigh(); // set all pins HIGH
delay(500);
sr.setAllLow(); // set all pins LOW
delay(500);
// setting single pins
for (int i = 0; i < 40; i++) { sr.set(i, HIGH); // set single pin HIGH delay(250); } delay(500); // resetting single pins for (int i = 40; i >= 0; i--) {
sr.set(i, LOW); // set single pin LOW
delay(250);
}
// pat1
for (int i = 40; i >= 0; i--) {
sr.set(i, HIGH); // set single pin HIGH
sr.set(i-1, HIGH);
sr.set(i+1, HIGH);
delay(250);
sr.set(i, LOW); // set single pin HIGH
sr.set(i-1, LOW);
sr.set(i+1, LOW);
}
// pat2
for (int i = 0; i <40; i++) {
sr.set(i, HIGH); // set single pin HIGH
sr.set(i-1, HIGH);
sr.set(i+1, HIGH);
delay(250);
sr.set(i, LOW); // set single pin HIGH
sr.set(i-1, LOW);
sr.set(i+1, LOW);
}
// pat3
for (int i=0; i<=2; i++){
for (int i = 3; i <43; i=i+2) { sr.set(i, HIGH); // set single pin HIGH delay(250); sr.set(i, LOW); // set single pin HIGH } for (int i = 43; i >=3; i=i-2) {
sr.set(i, HIGH); // set single pin HIGH
delay(250);
sr.set(i, LOW); // set single pin HIGH
}
}
// pat4
for (int i = 0; i <40; i++) {
sr.set(i, HIGH); // set single pin HIGH
sr.set(i-1, HIGH);
sr.set(i-2, HIGH);
sr.set(i+1, HIGH);
sr.set(i+2, HIGH);
delay(250);
sr.set(i, LOW); // set single pin HIGH
sr.set(i-1, LOW);
sr.set(i-2, LOW);
sr.set(i+1, LOW);
sr.set(i+2, LOW);
}
// set all pins at once
uint8_t pinValues[] = { B10101010 };
sr.setAll(pinValues);
delay(1000);
// read pin (zero based, i.e. 6th pin)
uint8_t stateOfPin5 = sr.get(5);
sr.set(6, stateOfPin5);
// set pins without immediate update
sr.setNoUpdate(0, HIGH);
sr.setNoUpdate(1, LOW);
// at this point of time, pin 0 and 1 did not change yet
sr.updateRegisters(); // update the pins to the set values
}
Início da montagem e testes do código:
Árvore de LEDs em exposição:
Ainda na fase de testes:
Professora de Informática na Escola Secundária de Canelas desde 2009.
Coordenadora do Clube de Programação e Robótica.