Stap 8: De Code
Hier is de code voor de Arduino. Deze code zal maken de arduino willekeurig een nummer van 3 tot en met 7, overeenkomt met de output pinnen dat zal een van de vier stem opname modules activeren. Dit zal gebeuren nadat een stem-module heeft klonk met een bootsman fluitje, kenmerkend voor deze prop. Bovendien zal de code inschakelen muur Comm inspelen op het deelvenster zender door het activeren van het deel van de werken van een walkie talkie, maar alleen wanneer comm knop is geactiveerd.
De één moeilijkheid in deze code is het deel van de sigVal, want het is echt moeilijk om te weten wanneer het signaal is aangekomen, u moet zitten kijken naar de seriële monitor terwijl iemand is in de andere kamer die elke minuut door de knop te drukken, maar na uur zit ik eindelijk zag dat het was 3.66v herhaald 3 keer, dat wat er gebeurde was toen de zender werd geactiveerd. Wanneer u uw nummer onder de seriële monitor vindt, vermenigvuldig het met 1023 en het wordt gedeeld door 5 om het laatste nummer dat gaat in de "als (sigVal > = 748) {" lijn, en afhankelijk van de tijd het zich u herhaalt zult willen veranderen de "als (zekerheid > = 3) {" lijn.
Als deze onderstaande code niet werkt, probeert te downloaden van het bestand dat ik heb geüpload, deze code geeft je een 'verdwaalde ' \' in programma' fout soms maar anderzijds, dat is hetzelfde maar met minder reacties, niet.
long randNumber; //Setting all the pins const int sigIn = A3; int certainty = 0; float sigVal = 0; const int waltal = 8; const int ABut = 9; const int ALig = 10; const int AKlax = 2; void setup() { pinMode(AKlax,OUTPUT); //setting pin two for the alert klaxon //setting 5 digital pins to output pinMode(3,OUTPUT); //for the other recording modules. pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(waltal,OUTPUT); //making the walkie-talkie pin an output pinMode(ABut,INPUT); //And the alert button an input. pinMode(ALig,OUTPUT); //Setting the red alert light to output pinMode(13,OUTPUT); randomSeed( analogRead(A1) ); //Making things really random. Serial.begin(9600); //Just so I could work out when we were receiving a signal. } void loop() { digitalWrite(13,LOW); sigVal = analogRead(sigIn); //reading and storing the data of pin A3 int ABV = digitalRead(ABut); //Reading the Alert pushbutton. Serial.print("Voltage Output = "); Serial.print(sigVal*5/1023); Serial.println(" "); randNumber = random(3,7); //Getting a random number for the //output voice module pins, exept the //7th that will play every time if(ABV == HIGH) { //Checking if the button was pressed digitalWrite(AKlax,HIGH); //If so sound the alert for(int i=0;i<6;i++) { digitalWrite(ALig,HIGH); delay(750); digitalWrite(ALig,LOW); delay(750); } delay(10000); } else { //And if not keep ckecking for the signal. if(sigVal >= 748) { certainty++; } else { certainty = 0; } if(certainty >= 3) { digitalWrite(7,HIGH); //Here we play first the whistle delay(2000); digitalWrite(7,LOW); digitalWrite(randNumber,HIGH); //Then on eof the four other modules. delay(7000); digitalWrite(randNumber,LOW); certainty = 0; digitalWrite(waltal,HIGH); delay(30000); digitalWrite(waltal,LOW); delay(10000); } else { } } }