If you are interested in the schematics I have the PCB Artist version downloadable here:
The Arduino code is instead available below.
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. The circuit: * LED connected from digital pin 13 to ground. * Note: On most Arduino boards, there is already an LED on the board connected to pin 13, so you don't need any extra components for this example. Created 1 June 2005 By David Cuartielles http://arduino.cc/en/Tutorial/Blink based on an orginal by H. Barragan for the Wiring i/o board */ #define BUTTON_DOWN 10 #define BUTTON_UP 12 int ledPinA = 6; // LED connected to digital pin 3 int ledPinB = 9; // LED connected to digital pin 4 int ledPinC = 4; // LED connected to digital pin 5 int ledPinD = 3; // LED connected to digital pin 6 int ledPinE = 2; // LED connected to digital pin 7 int ledPinF = 7; // LED connected to digital pin 8 int ledPinG = 8; // LED connected to digital pin 9 int ledPinDP = 5; // LED connected to digital pin 10 int val_down = 0; int old_val_down = 0; int val_up = 0; int old_val_up = 0; int state = 0; int gear = 1; // The setup() method runs once, when the sketch starts void setup() { pinMode(BUTTON_DOWN, INPUT); pinMode(BUTTON_UP, INPUT); // initialize the digital pin as an output: pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT); pinMode(ledPinC, OUTPUT); pinMode(ledPinD, OUTPUT); pinMode(ledPinE, OUTPUT); pinMode(ledPinF, OUTPUT); pinMode(ledPinG, OUTPUT); pinMode(ledPinDP, OUTPUT); // initialize serial communication: Serial.begin(9600); } void led0() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, LOW); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, HIGH); digitalWrite(ledPinDP, HIGH); } void led1() { digitalWrite(ledPinA, HIGH); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, HIGH); digitalWrite(ledPinG, HIGH); digitalWrite(ledPinDP, HIGH); } void led2() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, HIGH); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, LOW); digitalWrite(ledPinF, HIGH); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led3() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, HIGH); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led4() { digitalWrite(ledPinA, HIGH); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led5() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, HIGH); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led6() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, HIGH); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, LOW); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led7() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, HIGH); digitalWrite(ledPinG, HIGH); digitalWrite(ledPinDP, HIGH); } void led8() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, LOW); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void led9() { digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, LOW); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, LOW); digitalWrite(ledPinG, LOW); digitalWrite(ledPinDP, HIGH); } void ledDP() { digitalWrite(ledPinA, HIGH); digitalWrite(ledPinB, HIGH); digitalWrite(ledPinC, HIGH); digitalWrite(ledPinD, HIGH); digitalWrite(ledPinE, HIGH); digitalWrite(ledPinF, HIGH); digitalWrite(ledPinG, HIGH); digitalWrite(ledPinDP, LOW); } void setLed(int number) { switch (number) { case 0: ledDP(); break; case 1: led1(); break; case 2: led2(); break; case 3: led3(); break; case 4: led4(); break; case 5: led5(); break; case 6: led6(); break; case 7: led7(); break; case 8: led8(); break; case 9: led9(); break; } } // the loop() method runs over and over again, // as long as the Arduino has power void oldloop() { ledDP(); delay(1000); // wait for a second led0(); delay(1000); // wait for a second led1(); delay(1000); // wait for a second led2(); delay(1000); // wait for a second led3(); delay(1000); // wait for a second led4(); delay(1000); // wait for a second led5(); delay(1000); // wait for a second led6(); delay(1000); // wait for a second led7(); delay(1000); // wait for a second led8(); delay(1000); // wait for a second led9(); delay(1000); // wait for a second } void loop() { val_up = digitalRead(BUTTON_UP); if ((val_up == HIGH) && (old_val_up == LOW)) { gear += 1; Serial.print("gear number: "); Serial.println(gear, DEC); delay(100); } old_val_up = val_up; val_down = digitalRead(BUTTON_DOWN); if ((val_down == HIGH) && (old_val_down == LOW)) { gear -= 1; Serial.print("gear number: "); Serial.println(gear, DEC); delay(100); } old_val_down = val_down; if (gear >= 6) { gear = 6; } if (gear <= 1) { gear = 1; } setLed(gear); }
Salve come avevo scritto nei commenti del video che hai pubblicato dovrei realizzare un contatore up down uguale a quello che hai realizzato tu, con la differenza che parta da 0 e arrivi a 6 o 7 e andando sotto zeo si dovrebbe visualizzare una linea o una a che rappresenti la retro in più dovrebbe avere un tasto reset che in qualsiasi momento mi porti a 0. mi servirebbe una lista del materiale da comprare. in casa ho già un 7 segmenti un 64ls192 e un 4511 Grazie a presto Giuseppe la mia email è g.samir@libero.it
ReplyDeleteCiao buon giorno scusa se ti disturbo ieri a notte fonda sono riuscito a installare il codice ma niente non va ho provato a collegare 3 e 8( devo collegare entrambi o solo il 3 o solo 8) del 7 segmenti al gnd e una volta collegato al mac si accende solo il punto per il resto niente, clicco gli switch ma niente, ho controllato il tutto e sembra collegato bene non so cosa fare.Ma è importante il verso delle resistenze il colore rosso della prima striscia deve andare a contatto con l'arduino?
ReplyDeleteIl display 7 segment che hai utilizzato è catodo o anodo? io inizialmente ho collegato tutto come me da diagramma inviatomi ma niente il display 7 segmenti rimaneva spento, poi ho decino di collegarlo al gnd non è che percaso ho bruciato il display?
scusami tanto ma sono i primi tentativi non ho mai studiato elettronica.
A presto Giuseppe
sir ..could you give the circuit diagram for this project
ReplyDeleteThe two circuit diagrams are already available and added as links to this blog's entry: https://sites.google.com/site/dgtechblogscripts/SevenLedCounter.sch and https://sites.google.com/site/dgtechblogscripts/SevenLedCounter12V.sch
Delete