Clamshell effektpedalen (10 / 10 steg)
Steg 10: Arduino skiss för Vippbrytare
Jag vill ha clamshell bete sig som en riktig effektpedal, så jag beslöt att göra en Vippbrytare nästa. Jag använde prov skissen, "Knock", från "Sensorer" exempel.
Detta använder samma ledningar som "IfStatementConditional" ovan. Men innan jag laddade skissen, gjorde jag en liten förändring:
Serial.println("knock!");
blir
Serial.println(sensorReading);
Detta tillåter mig att se värdena den Arduino läser av clamshell.
Efter verifiering och lastning skissen, öppnade jag följetong bildskärmen. Nu varje gång jag knackade på clamshell, ledde inbyggt stift 13 växlas på eller av. Dessutom visades sensorn läser sig i följetong monitor.
Det fungerade bra, men jag märkte att skärmen ibland återvänt flera avläsningar för varje kran, eller ingen alls. Så jag spelade med försening värde, och varierade hur snabbt jag knacka växeln med min fot. En fördröjning av 150 tycktes fungera bäst för mig.
Precis som med den första skissen, tröskelvärdet är nyckeln: om det inte fungerar, kontrollera att numret som är tilldelat till "threshold" är mycket lägre än sensorn läser siffror i monitor.
Här är skissen, en liten variant på Knock!, som jag kallar Stomp_Toggle. När du får switch funktion, kan du klippa och klistra in koden i någon sketch du.
/ * Stomp växla
Denna skiss läser clamshell variabelt motstånd används som stomp växel.
Läser en analog stift och jämför resultatet med en uppsättning tröskel.
Om resultatet är större än tröskelvärdet, skriver det
värdet till seriell port och växlar LED på stift 13.
Krets:
* En bly av den clamshell bifogas A0
* Andra leda av clamshell bifogas 5V på Arduino
* 10K resistor fästs marken från analog i 0
http://www.Arduino.cc/en/tutorial/knock
skapad 25 Mar 2007
av David Cuartielles < http://www.0j0.org>
modifierade 30 Aug 2011
av Tom Igoe
modifierade 10 Dec 2013
av Jesse Seay
Denna exempelkod är offentlig.
*/
Dessa konstanter inte kommer att ändra:
CONST int ledPin = 13. ledde till digital stift 13
CONST int gaspedalsignal = A0; clamshell är ansluten till analoga stift 0
CONST int tröskel = 500. tröskelvärdet för att avgöra när det upptäckta trycket växlar omkopplaren
dessa variabler ändras:
int sensorReading = 0; variabel för att lagra värdet läsa från givarstaven
int ledState = låg; variabeln som används för att lagra den sista LED statusen, för att växla ljus
void setup() {
pinMode (ledPin, produktionen); förklara ledPin som som utdata
Serial.BEGIN(9600); Använd den seriella porten
}
void loop() {
Läs sensorn och lagrar det i variabeln sensorReading:
sensorReading = analogRead(knockSensor);
om sensorn läsningen är större än tröskelvärdet:
om (sensorReading > = tröskelvärde) {
Växla status för ledPin:
ledState =! ledState;
uppdatera LED PIN-koden sig själv:
digitalWrite (ledPin, ledState);
Skicka sensor läsa tillbaka till datorn, följt av newline
Serial.println(sensorReading);
}
Delay(150); dröjsmål till undvika överbelastning serieport bufferten
}