74HC164 SKIFT Register och din Arduino (6 / 9 steg)
Steg 6: Projekt 2: "2 tråd" 7 Segment display controller
bit 1 = stift 3
bit 2 = stift 4
bit 3 = stift 5
bit 4 = stift 6
bit 5 = stift 10
bit 6 = stift 11
bit 7 = stift 12
bit 8 = stift 13 (om du vill använda decimalkommat)
Och katoden har displayen genom 330 ohm motståndet och till makten tillförsel marken
nu öppna seven_seg_demo.pde i arduino IDE
Först ser du där vi definiera data och klocka stiften
#define data 2
#define klockan 3
Nästa vi satt alla karaktär mönster i binärt, detta är ganska lätt, titta på ritningen nedan, om du behöver den mellersta segment typ i en en, nästa du behöver det övre segmentet, om så skriv in en till, Fortsätt med detta tills du täcka alla 8 segment, märka min längst till höger lite (8 bitar) är alltid 0, det är eftersom jag aldrig slår på decimalkommat.
byte noll = B01111110;
byte en = B00000110;
byte två = B11011010;
byte tre = B11010110;
byte fyra = B10100110;
byte fem = B11110100;
byte sex = B11111100;
byte sju = B01000110;
byte åtta = B11111110;
byte nio = B11110110;
Nästa i void setup anger vi våra data och klockan stift till utgångar
void setup()
{
pinMode (klocka, OUTPUT); gör klockan pin en utgång
pinMode (data, produktionen); göra data stift en output3
}
sedan i ogiltig loop använder vi shiftOut att visa varje mönster (nummer) vänta 1/2 en sekund och Visa nästa, 0 till 9, sedan dess är i void slingan fungerar det kommer räkna 0-9 och upprepa för evigt.
void loop()
{
shiftOut (data, klocka, LSBFIRST, noll);
Delay(500);
shiftOut (data, klocka, LSBFIRST, en);
Delay(500);
shiftOut (data, klocka, LSBFIRST, två);
Delay(500);
shiftOut (data, klocka, LSBFIRST, tre);
Delay(500);
shiftOut (data, klocka, LSBFIRST, fyra);
Delay(500);
shiftOut (data, klocka, LSBFIRST, fem);
Delay(500);
shiftOut (data, klocka, LSBFIRST, sex);
Delay(500);
shiftOut (data, klocka, LSBFIRST, sju);
Delay(500);
shiftOut (data, klocka, LSBFIRST, åtta);
Delay(500);
shiftOut (data, klocka, LSBFIRST, nio);
Delay(500);
}