Hallo...
Habe eine Projekt gefunden das ich Nachgebaut habe , etwas verändert und nun gehen mir die zahlen aus.
einmal das Video
#include <Servo.h>
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
#define ServoI 12 //Connected to the servo motor.
#define ServoO 11 //Connected to the servo motor.
#define Bright 2 //servo library disable PWM on pins 9 and 10.
#define Exit 9 //Pin connected to the EXIT button.
#define In 8 //Pin connected to the IN button.
#define BarLow 177 //Low position of the barrier.
#define BarUpI 90 //Up position of the barrier.
#define BarUpO 80 //Up position of the barrier.
#define CAPACITY 9 //Capacity of the parking lot.
#define INTEN 100 //Display intensity %
//Pins conections to segments (cathodes).
#define segA 30
#define segB 31
#define segC 32
#define segD 33
#define segE 34
#define segF 35
#define segG 36
//Array with the segments to represent the decimal numbers (0-9).
byte segments[10] = {
// pgfedcba <--- segments
B00111111, // number 0
B00000110, // number 1
B01011011, // number 2
B01001111, // number 3
B01100110, // number 4
B01101101, // number 5
B01111101, // number 6
B00000111, // number 7
B01111111, // number 8
B01101111 // number 9
};
void setup(){
myservo1.attach(ServoI); // attaches the servo.
myservo2.attach(ServoO); // attaches the servo.
pinMode(Exit, INPUT); // set "EXIT" button pin to input
pinMode(In, INPUT); // set "IN" button pin to input
digitalWrite(Exit, HIGH); // Connect Pull-Up resistor.
digitalWrite(In, HIGH); // Connect Pull-Up resistor.
pinMode(segA,OUTPUT);
pinMode(segB,OUTPUT);
pinMode(segC,OUTPUT);
pinMode(segD,OUTPUT);
pinMode(segE,OUTPUT);
pinMode(segF,OUTPUT);
pinMode(segG,OUTPUT);
pinMode(Bright,OUTPUT);
analogWrite(Bright,255*INTEN/100);
myservo1.write(BarLow); //Barrier in the low position
myservo2.write(BarLow); //Barrier in the low position
// delay(1000);
}
int Available= 9; // Number of places available.
//================================================================
void loop(){
Display(Available);
if(digitalRead(In)==0)
{
if(Available != 0){
Available--;
myservo1.write(BarUpI);
delay(3000);
myservo1.write(BarLow);
}
}
if(digitalRead(Exit)==0)
{
if(Available != CAPACITY){
Available++;
myservo2.write(BarUpO);
delay(3000);
myservo2.write(BarLow);
}
}
}
/*-------------------------------------------------------------------
Put the segments according to the number.
--------------------------------------------------------------------*/
void Display(int number){
byte segs = ~segments[number]; //"~" is used for commom anode.
digitalWrite(segA, bitRead(segs, 0) );
digitalWrite(segB, bitRead(segs, 1) );
digitalWrite(segC, bitRead(segs, 2) );
digitalWrite(segD, bitRead(segs, 3) );
digitalWrite(segE, bitRead(segs, 4) );
digitalWrite(segF, bitRead(segs, 5) );
digitalWrite(segG, bitRead(segs, 6) );
}
Im gegensatz zum Video ist da eine 2te Schranke, das ist auch so gewollt und das ist auch soweit schon ganz OK nur stehen meist auf dem Parkplatz für das ich das Projekt haben möchte, meist mehr als 10 Fahrzeuge !
was ich gerne erfahren möchte ist, welche ICs ich als Treiber für die 7 Segmentanzeige nehmen kann und was ich am Code wo ändern müsste ?... ¿
ich muss sagen das ich in der sache noch sehr unerfahren bin da ich eher Modellbauer bin.
wünsche noch schöne restweihnachten und schon mal guten rutsch in programierte 2014