A partir de hoje estarei postando minhas experiências com Eletrônica e Arduino aqui neste Blog. A primeira postagem será sobre este efeito com Leds que eu fiz para me divertir.
Segue link do vídeo:
Código:
/*
By Jeorgy Ramalho
01/02/2014
*/
byte ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Cria um array para os pinos dos LEDs
int direction = 1;
int currentLED = 0;
int i;
void setup() {
for (int x=0; x<12; x++) { // define todos os pinos como saída
pinMode(ledPin[x], OUTPUT); }
}
void loop(){
for(int i=0; i<5; i++){
pisca();
}
for(int i=0; i<5; i++){
barra();
}
for(int i=0; i<5; i++){
barraInv();
}
for(int i=0; i<5; i++){
colunas();
}
for(int i=0; i<5; i++){
colunasInv();
}
for(int i=0; i<5; i++){
changeLED();
}
for(int i=0; i<20; i++){
ledRandom(ledPin);
}
}
void pisca(){
for(int i=0; i<12; i++){
digitalWrite(ledPin[i], HIGH);
}
delay(150);
for(int i=0; i<12; i++){
digitalWrite(ledPin[i], LOW);
}
delay(150);
}
void ledRandom(byte leds[]){
for (int x=0; x<12; x++) { // apaga todos os LEDs
digitalWrite(ledPin[x], LOW);
}
int x = random(11);
digitalWrite(ledPin[x], HIGH);
delay(100);
digitalWrite(ledPin[x], LOW);
delay(100);
}
void changeLED() {
for (int i=0; i<12; i++) { // apaga todos os LEDs
digitalWrite(ledPin[i], LOW);
}
for(int i=0; i<12; i++){
digitalWrite(ledPin[currentLED], HIGH); // acende o LED atual
currentLED += direction; // incrementa de acordo com o valor de direction
delay(50);
digitalWrite(ledPin[currentLED], LOW);
delay(50);
// altera a direção se tivermos atingido o fim
if (currentLED == 11) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}
}
void barra(){
int lado1 = 5;
int lado2 = 6;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], HIGH);
digitalWrite(ledPin[lado2], HIGH);
delay(50);
lado1--;
lado2++;
}
lado1 = 0;
lado2 = 11;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], LOW);
digitalWrite(ledPin[lado2], LOW);
delay(50);
lado1++;
lado2--;
}
}
void barraInv(){
int lado1 = 0;
int lado2 = 11;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], HIGH);
digitalWrite(ledPin[lado2], HIGH);
delay(50);
lado1++;
lado2--;
}
lado1 = 5;
lado2 = 6;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], LOW);
digitalWrite(ledPin[lado2], LOW);
delay(50);
lado1--;
lado2++;
}
}
void colunas(){
int lado1 = 0;
int lado2 = 6;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], HIGH);
digitalWrite(ledPin[lado2], HIGH);
delay(50);
lado1++;
lado2++;
}
lado1 = 5;
lado2 = 11;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], LOW);
digitalWrite(ledPin[lado2], LOW);
delay(50);
lado1--;
lado2--;
}
}
void colunasInv(){
int lado1 = 5;
int lado2 = 11;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], HIGH);
digitalWrite(ledPin[lado2], HIGH);
delay(50);
lado1--;
lado2--;
}
lado1 = 0;
lado2 = 6;
for(int i=6; i>0; i--){
digitalWrite(ledPin[lado1], LOW);
digitalWrite(ledPin[lado2], LOW);
delay(50);
lado1++;
lado2++;
}
}
Nenhum comentário:
Postar um comentário