Interaktiva Shooting Gallery (6 / 9 steg)
Steg 6: Bygga Target del 4
***********************************************
Uppdatera. Jag lägger en förklaring av vad som händer i varje steg. Vi börjar i detta steg med IR-sensorn. Sensorn är tillåter 5v passera genom en hög signal till 555 timer krets. När IR-sensorn får en IR-indata växlar, skicka signalen till 555 timer låg. Det är där IR-sensorer jobb slutar.
555 timer tar över här. 555 timer kretsen sätter en låg signal genom utgångsstiftet tills den får en låg signal genom ingångsstiftet från IR-sensorn. En låg på ingångsstift triggers kretsen att skicka utgångsstiftet hög för en tid bestäms av värdet av motstånd och kondensator, varefter signalen till utgångsstiftet tas låga igen.
Det är där Ardiuno kommer in. Den Main Arduino syftar till att leverera en pwm-signal att köra servo. Arduino sänder en signal som talar om servo att flytta till noll och upprepas loopen i detta tillstånd tills den får en hög signal från 555 timer på det utsedda ingångsstiftet (A0 i detta fall). När A0 får en hög signal Arduino genererar en pwm-signal som talar om servo att flytta till 90 grader sedan skiss loopar tillbaka till början och fortsätter att upprepa slingan i 90 graders staten tills A0 får en låg igen från 555 timer och återgår till noll. Kom ihåg 555 kretsen förblir hög för en viss tid så att vi kan hålla hög signal och servo på 90 grader i några sekunder utan att sätta en fördröjning i skissen.
Det kan vara ett sätt att eliminera 555 timern genom att anpassa något liknande ett ögonblick utan dröjsmål skiss att hålla servo på 90 grader i några sekunder. Jag försökte min egen att anpassa ett ögonblick utan dröjsmål kod emellertid antagligen Tack min brist på förståelse som jag inte har varit framgångsrik på det. Så nu kommer jag sticka med min hårdvara lösning.
Det finns en fördel med att använda 555 timer kretsen. Utdata från 555 kretsen kan användas för mindre komplexa uppgifter till exempel, utlösa ett relä, lyser upp några lysdioder, något som kan göras med enkla höga och låga signaler kan styras av timern. Detta lämnar Arduino fri att göra mer komplexa uppgifter. Också utökar det antalet möjliga mål. En Arduino Nano har 8 analoga stift. På grund av min bristande kunskap om programmering som bara ger mig 8 ingångar för mål, som i sin tur jag använder bara 8 digitala stift för att utdata till mål. Så är min Arduino begränsad till 8 mål. Om jag skulle använda en 555 timer för att styra reläer, lampor, är m.m. antalet möjliga mål obegränsad.
Detta är en kort skiss att styra en servo på digital stift 6 med ingång på analoga pin A0
#include < Servo.h >
int sensorpin0 = A0; analoga pin används för att ansluta skarpa sensorn
int val0 = 0; variabel för att lagra värden från sensorn (ursprungligen noll)
Servo myservo0; skapa objekt för att styra en servo servo
int pos = 0;
void setup()
{
Serial.BEGIN(9600); startar den seriella monitorn
myservo0.attach(6); tillmäter objektet servo servo på stift 7
}
void loop()
{
val0 = analogRead(sensorpin0); läser värdet i skarpa sensorn
om (val0 > 10) {
myservo0.write(90); ändra servo position till 90
}
annat {
myservo0.write (0);}
}