Stap 4: Upload de code aan uw Arduino met behulp van de Arduino IDE programma
Gebruik de code geplakt hieronder, of beter nog, gebruik de bijgevoegde schets van de Arduino te sturen van de code naar je Arduino.
Zorg ervoor om te kijken naar dit ingesloten YouTube-video, zoals ik uitleggen hoe alle code werkt in het maken van wat u fysiek ziet in zowel de uiteindelijke video en in de Fritzing breadboard schets.
Polygonasaurus Rex batterijtester
Gemaakt door Daniel Rudzik / / deze code is het publieke domein. Voel je vrij om het te gebruiken als u alstublieft! =)
#include //This is de standaard servo bibliotheek #include / / hoeft te nemen van de SD bibliotheek //const int chipSelect = 4; #define chipSelect 4 //using digitale pin deze 4 op arduino nano 328, andere pinnen #include kunt gebruiken / / ook hoeft op te nemen... deze bibliotheek #include
TMRpcm tmrpcm; maakt een object voor gebruik in deze schets (nieuwe code) Servo servo1; servo-object om te bepalen van een servo Servo servo2; maken servo-object om te bepalen van een servo maken / / twaalf servo-objecten kunnen worden gemaakt op de meeste borden int pos = 90; variabele op te slaan van de servo positie int sensorPin = A0; Selecteer de invoer pin voor de potentiometer int ledPin = 13; Selecteer de pin voor de LED int sensorValue = 0; variabele voor het opslaan van de waarde afkomstig van de sensor int BatteryPin = A5; Selecteer de invoer pin voor de potentiometer int BatteryValue = 0; variabele de waarde afkomstig van de sensor opslaan unsigned lang = 0; Gebruikt om te helpen met het opslaan van numerieke waarde
void setup {digitalWrite (3, laag); //Displays Roodlicht van de RGB Led digitalWrite (2, hoog); / / houdt de RGB-groen licht uitgeschakeld servo1.attach(8); / / de servo op pin 8 hecht aan de servo-object servo2.attach(7); / / hecht de servo op pin 7 aan de servo-object pinMode (BatteryPin, OUTPUT); pinMode (2, OUTPUT); //green digitale pin 2 pinMode (3, OUTPUT); //red is digital pin 3 Serial.begin(9600); //Allows waarden wilt weergeven in de seriële monitor pinMode (9 UITVOER); tmrpcm.speakerPin = 9; 5,6,11 of 46 op Mega, 9 op Uno, Nano, enz Serial.print ("initialiseren SD card..."); Zorg ervoor dat de standaard chip select pin is ingesteld op / / output, zelfs als u het niet gebruikt: pinMode (10, OUTPUT); zien of de kaart aanwezig en kan worden geïnitialiseerd: if (! SD.begin(chipSelect)) {Serial.println ("kaart mislukte of niet aanwezig"); / / doe niets meer: keren;} Serial.println ("kaart geïnitialiseerd."); }
void loop {BatteryValue = analogRead(BatteryPin); / / luiden naar de waarde van de AA-batterij Serial.println(sensorValue); //Displays de fotocel sensor-waardes in seriële Monitor wijzigen 'sensorValue' naar 'BatteryValue' bij het testen van de batterij in de plaats van lichte uitlezing van fotocel. als (BatteryValue > 100) {/ / waarde groter is dan 100 als de AA is aangesloten en heeft macht links in. Zou moeten werken prima met uw AA batery maar zoniet, wijzig de waarde van 100 wat omhoog in seriële monitor komt wanneer de batterij maakt contact. tmrpcm.Play("a.wav"); Speelt het gebrul van de T-Rex wanneer de waarde groter dan 100 is en de SD-kaart ok is. digitalWrite (2, laag); Schakelt het rode lampje van de RGB led digitalWrite (3, hoge); Draait op het groene licht van de RGB led} anders {digitalWrite (3, laag); / / draait op het groene licht van de RGB led digitalWrite (2, HIGH);} //Turns op het rode lampje van de RGB led sensorValue = analogRead(sensorPin); Detecteert de waarde op de fotocel om te bepalen of het is geblokkeerd van de lichte if (sensorValue > 700) {/ / wanneer de fotocel waarde hoger is dan 700, het is geblokkeerd voor (pos = 90; pos > = 19; pos--) {//Goes van 90 tot 19 graden. servo1.write(pos); servo2.write(180-pos); //Simultaneously spiegels de andere servo motor aan de t-rex schedel omlaag} delay(1000); voor (pos = 19; pos < = 90; pos ++) / / gaat van 19 graden tot 90 graden {servo1.write(pos); / / vertellen Servo naar positie in de variabele 'pos' servo2.write(180-pos); vertellen van de servo naar positie in de variabele 'pos' delay(15); wacht 15ms voor de servo om de positie te bereiken}}}