Stap 5: Project 1 [pt 2]: '2 draad' bargraph LED display controller-software
Open het bestand "_164_bas_ex.pde" in de arduino IDE, zijn een eenvoudige schets die u gewoon kunt in- of uitschakelen van de LED in de bargraph weergave definiëren
De eerste 2 regels definiëren de pin-nummers die we voor gegevens en klok gebruiken zullen, ik gebruik #define over const integer, ik vind het makkelijker om te onthouden en biedt geen voordelen aan de ene of de andere keer gecompileerd
#define gegevens 2
#define klok 3
Daarna is de void setup-functie, het slechts éénmaal uitgevoerd, zodat de arduino inschakelt, wordt het shift register ingesteld en niets anders heeft te doen. Binnen de functie void setup wij de clock en data pennen instellen als OUTPUT pinnen en vervolgens met behulp van de functie van shiftOut we sturen de gegevens naar het shift register
VOID Setup
{
pinMode (klok, uitvoer); Maak de pin van een output klok
pinMode (gegevens, OUTPUT); de pin van een output gegevens maken
shiftOut (data, klok, LSBFIRST, B10101010); deze binaire waarde verzenden het shift register
}
In de functie van shiftOut ziet u de argumenten
gegevens is de data pin, clock de pin klok
LSBFIRST verwijst naar welke volgorde zijn, wanneer het schrijven van het uit in binaire notatie (Bxxxxxxxx) het 7de element voorbij de B de minst Signifigant bits eerste is, dit is gevoed in eerste zodat het eindigt op de laatste output zodra alle 8 bits worden gevoed
B10101010 is de binaire waarde wordt verzonden naar het shift register, en het zal draaien op elke oneven licht, probeer af te spelen met verschillende waarden voor verschillende patronen voor bijlagen uitschakelen
en tenslotte een leeg ongeldig lus (omdat u nog nodig hebt als je het niet gebruikt)
void loop {} / / lus leeg voor nu
Voorbeeld 2: VOID Setup
de eerste 8 regels zijn hetzelfde als de eerste 8 lijnen van het eerste voorbeeld, in feite ze zal niet veranderen voor elk van de andere projecten, zo
#define gegevens 2
#define klok 3
{
pinMode (klok, uitvoer); Maak de pin van een output klok
pinMode (gegevens, OUTPUT); de pin van een output gegevens maken
Maar nu is er in void setup een 8 tellen voor lus, waarbij een lege byte en 1 bit in tegelijk vanaf de meest linkse bit en bewegende rechts verschuiven. Dit is achteruit uit het eerste voorbeeld waar we begonnen met de meest rechtse bit en werkte links, maar met behulp van MSBFIRST de shift functie stuurt de gegevens op de juiste manier
Ook voegen we een vertraging in de for-lus zodat het vertraagt genoeg zichtbaar. void loop {} / / lus leeg voor nu
for (int i = 0; ik < 8; ++ ik) //for 0 - 7 doen
{
shiftOut (data, klok, MSBFIRST, 1 << i); bits verschuiving een logica hoge waarde (1) door i
delay(100); vertraging 100ms of u zou niet zitten kundig voor zien
}
}
Upload het script en je ziet nu de bargraph oplichten licht elkaar tegelijk