En kartong televisor (med arduino och lysdioder) (13 / 14 steg)
Steg 13: Varvtalsreglering
Detta görs med feedback från hastighetsmätaren.
Först och främst används pulse bredd modulering för att styra effektförbrukningen motorn. Denna puls bredd modulering helt enkelt slå på och av strömmen mycket snabbt. Om "på" pulser är kort jämfört med 'av' pulser, kommer att medelvärde över tid av strömmen till motorn vara låg. Om "på" pulser är längre än "av" pulser, att kraften vara stora.
Arduinoen har flera analoga utgångar som använder PWM. Dessa utgångar har en upplösning på 256 med 0 är ingen makt och 256 helt öppet.
Programmet på arduino uppgift att hitta rätt värdet för att låta skivan vända så nära 12 varv per sekund. (eller 1 revolution i 0.083.. s)
I varje revolution förbinder aluminiumband de två kablarna fungerar som en digital swich som arduino kan läsa med en digital pin. Som förklaras i föregående steg en dra upp motstånd används, så när arduino ser till att den digitala stiftet går från "Hög" till "Låg" det kan veta att hjulet har gjort en revolution.
Fördröjningen mellan dessa pulser kan mätas med funktionen micros(). Denna försening är sedan perioden av en revolution.
Feedback innebär att arduino kan justera strömmen till motorn. Om det händer att perioden är för stor, kan kraften ökas för att påskynda motorn. Om perioden är för kort kan det minska dess hastighet.
Efter varje justering väntar arduino tills den disken och roterande motor kommer till en konstant hastighet. Motorn är kanske lite för liten för denna skiva och det kräver lite tid att nå sin fulla hastighet.
Om arduino inte skulle vänta tills skivan är spunnen upp, det skulle öka sin makt med varje rotation och när skivan äntligen når rätt hastighet kommer det fortfarande vara accelererande som orsakar arduno att sänka strömmen alldeles för mycket. Så en slags svängning dyker upp.
Denna svängning kan minskas om arduino väntar tills disken når en konstant hastighet och därefter justerar vid behov.
För att veta om skivan är spunnen upp, ser arduino på skillnaderna i förseningar. Om det skulle snabbare och plötsligt en större än föregående period observeras, vet det att skivan inte är accelererande längre men dess hastighet påverkas mer av dess miljö än motorn.
Koden finns nedan i en zip-fil.
Och slutligen finns det en liten Python program. Det är inte nödvändigt, kan du enkelt ersätta först "om uttrycket" i en slinga av några kod för en tryckknapp. (faktiskt i tidigare bilder kan du se en potentiometer eftersom jag inte har en knapp naar mig. Och jag gjorde helt enkelt en analogread. Bara ett exempel) det är bara praktiskt att starta och stoppa allt från min laptop.
Koden ingår också nedan. (det verkar vara ett problem med < pre >< / pre > taggar.
Bara köra programmet startar motorn.
Och som ni ser på första bilden, makt börjar på 80, går till ~ 110 och sedan varierar lite runt 90. Det faktum att det finns fortfarande en svängning i början orsakas av det faktum att tror nästan skakar sig isär och arduino tycker att skivan är spunnen upp av några skadade värden.
Men, som ni kan se i understödja föreställer det fungerar mer eller mindre, perioden stabiliserar sig aroud 83 ms. det tar lite tid men det fungerar!