Árvore de Natal

 

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:

 

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *