Arduino styrs magnetventilen Motor (6 / 7 steg)
Steg 6: programmering
Nu dags för programmering, måste du vara bekant med arduino kod att göra denna del (eller bara kopiera och klistra in min kod.)
1. först måste du inkludera några bibliotek...
a. "Wire" används för att starta I2C bussen för LCD
b. "LiquidCrystal_I2C" används för I2C/LCD
c. "Matematik" behövs för att göra beräkningarna av RPM senare
2. nu definiera din input/output pins
a. Ange "solinoid1pin" till digital pin 9
b. Ange "potpin" som analog pinne 1
c. Se "ignitioninputpin" som stift 2 (detta går till sensorn Halleffekten.)
d. sätta din "interruptnumber" som avbrottsnummer 0 (på digital pin nummer 2)
3. nu definiera alla följande variabler. (Volatile används eftersom dessa variabel används i ISR)
a. "previousstate"
b. "buttonstate"
c. "counter1"
d. "start"
e. "finish"
f. "gått ut"
g. "RPM"
4. nu till avsnittet allmänna inställningar som bara går en gång när du startar upp till arduino
a. Ange alla dina stift som in-/ utgångar
b. Ange starttillståndet för din stift/variabler
c. bifoga avbrottstjänstens rutin med dess inställningar
d. initiera och slå på bakgrundsbelysningen i LCD
e. utgång ett uttalande till LCD-skärmen
f. börja seriell kommunikation
5. nu här kommer huvudloop. Det kommer att köra för evigt tills arduino stängs
a. utgång buttonstate previousstate och counter1 till den seriella porten för att diagnostisera problem senare.
b. göra beräkningar för RPM
c. Ställ in If/Then uttalanden att aktivera nödsänkningssolenoiden endast när den första magneten upptäcks, och håller det på tills den andra magneten upptäcks för att stänga av.
d. ställa in If/Then uttalande att räkna tiden mellan hall effekt sensor upptäckter
e. göra en annan om utgångar sedan uttalande som RPM till displayen varje gång räknaren är en multipel av 6. Detta görs för att minska eftersläpningen i motorerna när RPM skickas till LCD-skärmen
f. infoga din avbrottstjänstens rutin. Detta återställer buttonstate, prevousstate, och lägger till en till disk varje gång.