MicroPlanet

  • Αρχή
  • Εγχειρίδια
  • Ρrojects
  • Βίντεο
  • Φόρουμ
Αρχή › Projects › Arduino Projects › 32 Χριστουγεννιατικα LED

Περιεχόμενα

  • Αρχή
  • Εγχειρίδια
  • Projects
    • Γενικά Ηλεκτρονικά
    • Basic Stamp 2 Projects
    • Arduino Projects
      • 32 Χριστουγεννιατικα LED
      • Αναπτυξιακό Ethernet
    • Propeller Projects
    • Atmel AVRs Projects
    • Microchip PIC Projects
  • Βίντεο
  • Φόρουμ
  • Πρόσφατες Δημοσιεύσεις

Είσοδος

  • Δημιουργία νέου λογαριασμού
  • Ξέχασα το συνθηματικό μου

Αναζήτηση

Φιλικά Sites:

Custom Bobblehead



Ποιοι είναι εδώ

Είναι εδώ αυτή τη στιγμή 0 users και 3 επισκέπτες.

Δημοσκόπηση

Θα θέλατε να δείτε ένα eshop για Μικροελεγκτές και σχετικά προϊόντα από το Microplanet.gr;
Ναι
93%
Όχι
4%
Δεν Ξέρω/Δεν Απαντώ
3%
Συνολικοί Ψήφοι: 112
  • Παλιότερες Δημοσκοπήσεις

32 Χριστουγεννιατικα LED

Ο Arduino έχει 14 εξόδους το μέγιστο αν δεν χρησιμοποιήσουμε σειριακή επικοινωνία, ενώ 12 εξόδους αν χρησιμοποιήσουμε σειριακή επικοινωνία. Είναι αρκετά εύκολο να επεκτείνουμε τον αριθμό εξόδων του αν χρησιμοποιήσουμε το ολοκληρωμένο κύκλωμα μετατροπής από σειριακή σε παράλληλη επικοινωνία 74HC595.

Code
/*

3 LED Fader using Flip-Flops

by Sebastian Tomczak

27 January 2007

*/


int strobe_time = 5;


void setup() {

  DDRD = B11111111;

  DDRB = B00111111 | DDRB;

  PORTB = B00000000;

}


void write374(byte clkPin, byte data) {

  PORTD = data;

  digitalWrite(clkPin, HIGH);

  delayMicroseconds(strobe_time);
 
  digitalWrite(clkPin, LOW);

  delayMicroseconds(strobe_time);

}


void loop() {

  for(int loop1 = 0; loop1 < 4; loop1++) {

   randomSeed(analogRead(0));

   int a = random(255);

   randomSeed(analogRead(1));

   int b = random(255);

   randomSeed(analogRead(2));

   int c = random(255);

   randomSeed(analogRead(3));

   int d = random(255);

   for(int k = 0; k < 256; k++) {

     for(int i = 0; i < 3; i ++) {

       delayMicroseconds(k * 10);

       write374(8, a);

       write374(9, b);

       write374(10, c);

       write374(11, d);

       delayMicroseconds(2551 - (k * 10) + 1);

       write374(8, 0);

       write374(9, 0);

       write374(10, 0);

      write374(11, 0);

      }

   }

}

for(int j = 0; j < 256; j++) {

   int a = 255 | j;

   int b = j;

   int c = 255 & j;

   int d = 255 - j;

   for(int k = 256; k > 0; k--) {

     for(int i = 0; i < 3; i ++) {

        delayMicroseconds(k * 10);

        write374(8, a);

        write374(9, 0);

        write374(10, c);

        write374(11, 0);

       delayMicroseconds(2551 - (k * 10));

       write374(8, 0);

       write374(9, b);

       write374(10, 0);

       write374(11, d);

       }

     }

   }

}

  • Αρχή
  • Εγχειρίδια
  • Ρrojects
  • Βίντεο
  • Φόρουμ

Copyright © 2009 - 2010