Arduino: ett enklare sätt att arbeta med sju segmenterar skärmar (13 / 14 steg)
Steg 13: Koden
/ * Kod skriven och mönster av Kyle Hovey (aka Speleomaniac på
För denna kod för en 4511 binära till sju-segment display avkodare att göra
skriva kod för visar mycket lättare.
Sju segment display:
A är ansluten till: stift 13 i 4511 (4511 chip är ett 16 stift chip för alla undrar)
B är ansluten till: pin 12 i 4511
C är ansluten till: pin-11 i 4511
D är ansluten till: pin 10 av 4511
E ansluten till: pin 9 i 4511
F är ansluten till: pin 15 av 4511
G ansluten till: stift 14 i 4511
Arduino att 4511:
Digital Pin 8 anslutna till: pin 1 av 4511 (binära pin 2)
Digital Pin 9 ansluten till: pin 2 av 4511 (binära pin 3)
Digital Pin 11 ansluten till: pin 6 i 4511 (binära PIN-kod 4)
Digital Pin 12 anslutna till: stift 7 i 4511 (binära pin 1)
CDF till arduino:
10K resistor kopplad till marken och analog ut tråd från en PIN-kod
CDF är andra pin av CDF cell kopplad till + 5v.
Binära:
B: DEC:
0000: 0
1000: 2
0100: 3
1100: 4
0010: 5
1010: 6
0110: 7
1110: 8
0001: 9 (4511 accepterar endast siffror upp till nio, sju segment display
1001:10 kan inte Visa tvåsiffrigt tal om du inte har två skärmar och två chips)
0101: 11
1101: 12
0011: 13
0111: 14
1111: 15
Koden för en digital ljusmätare på en sju segment display.
*/
CONST int Bin1 = 12; Dessa alla identifiera binära ingångar
CONST int Bin2 = 8; 4511 sju Segment dekoder
CONST int Bin3 = 9;
CONST int Bin4 = 11;
int val = 0;
int CDSpin = 0;
void setup() //Enters installationsfasen
{
pinMode (Bin1, OUTPUT); ställer in binära utdata en som en digital utgång
pinMode (Bin2, OUTPUT); och så vidare...
pinMode (Bin3, OUTPUT);
pinMode (Bin4, OUTPUT);
Serial.BEGIN(9600);
}
void loop() / / ganska mycket bara säger "loopa vad koden är efter denna linje"
{
Val = analogRead(CDSpin); Anger det analoga värdet "val" till den omgivande ljusnivån.
Val = karta (val, 0, 1029, 0, 100); Skala ner värdet från 1029-max till 100-max
Serial.println (val, DEC);
Delay(10); Vänta på arduino att fånga upp
om (val == 0 || val == 1) //if värdet är på minsta:
{
digitalWrite (Bin1, B0); Skriv "0" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B0);
}
om (val > 1 & & val < = 10) //if värdet är mellan ett och tio:
{
digitalWrite (Bin1, B1); Skriv "1" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B0);
}
om (val > 10 & & val < = 20) //if värdet är mellan tio och tjugo:
{
digitalWrite (Bin1, B0); Skriv "2" till displayen
digitalWrite (Bin2, B1);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B0);
}
om (val > 20 & & val < = 30) //if värdet är mellan tjugo och trettio:
{
digitalWrite (Bin1, B1); Skriv "3" till displayen
digitalWrite (Bin2, B1);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B0);
}
om (val > 30 & & val < = 40) //if värdet är mellan trettio och fyrtio:
{
digitalWrite (Bin1, B0); Skriv "4" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B1);
digitalWrite (Bin4, B0);
}
om (val > 40 & & val < = 50) //if värdet är mellan fyrtio och femtio:
{
digitalWrite (Bin1, B1); Skriv "5" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B1);
digitalWrite (Bin4, B0);
}
om (val > 50 & & val < = 60) //if värdet är mellan femtio och sextio:
{
digitalWrite (Bin1, B0); Skriv "6" till displayen
digitalWrite (Bin2, B1);
digitalWrite (Bin3, B1);
digitalWrite (Bin4, B0);
}
om (val > 70 & & val < = 80) //if värdet är mellan sextio och sjuttio:
{
digitalWrite (Bin1, B1); Skriv "7" till displayen
digitalWrite (Bin2, B1);
digitalWrite (Bin3, B1);
digitalWrite (Bin4, B0);
}
om (val > 80 & & val < = 90) //if värdet är mellan åttio och nittio:
{
digitalWrite (Bin1, B0); Skriv "8" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B1);
}
om (val > 90 & & val < = 100) //if värdet är mellan 90 och wne hundra;
{
digitalWrite (Bin1, B1); Skriv "9" till displayen
digitalWrite (Bin2, B0);
digitalWrite (Bin3, B0);
digitalWrite (Bin4, B1);
}
}