Stap 5: Bouwen uw ruggenmerg en schrijven van de code van de Arduino
Het bovenstaande diagram van Fritzing detailleert de delen en verbindingen nodig voor het aansluiten van onze temperatuursensor en elektromagneten aan de "spinal cord", de hersenen (bedoelde woordspeling) van ons systeem. De 12 volt NiMH accu zit onder de breadboard en SparkFun RedBoard binnenkant van het project. De temperatuursensor staat niet op het breadboard zoals wordt weergegeven in het diagram Fritzing, maar is gekoppeld aan het skelet hand zoals in de 3e afbeelding hierboven. Dit zorgt voor de vlam worden toegepast in de buurt van de hand te beste simuleren de temperatuur pijn reflex.
De code die ik gebruikt wordt geplakt hieronder. Het is niet de meest elegante oplossing (bijvoorbeeld ik gewend vertraging in plaats van millis Houd het simpel), maar het werkt:
Const int highSolenoid = 7; input van hoge druk regelaar/solenoïde combo
Const int lowSolenoid = 8; input van lage druk regelaar/solenoïde combo
Const int releaseSolenoid = 4; magneetklep vrijgeven van lucht door de biceps
Const int tempPin = A0;
int sensorValue;
int tempF;
VOID Setup {}
pinMode (highSolenoid, OUTPUT);
pinMode (lowSolenoid, OUTPUT);
pinMode (releaseSolenoid, OUTPUT);
Serial.begin(9600);
}
void loop
{
sensorValue = analogRead(tempPin); Lees druksensor
int tempF = ((sensorValue * 4.887585532746823)/10);
Serial.Print(sensorValue);
Serial.Print ("Temp");
Serial.println (tempF, DEC);
delay(250);
Als (tempF > 85)
{
digitalWrite (lowSolenoid, laag);
vertraging (100);
digitalWrite (releaseSolenoid, hoge); Open release solenoïde dus biceps kan gecontracteerde digitalWrite (highSolenoid, hoge); Als de temp boven 85F gaat, wordt de hoge solenoïde geopend, simuleren biceps contractie en snelle en verwijdering
vertraging (5000);
digitalWrite (highSolenoid, laag); Stop biceps contractie
vertraging (1000); geeft tijd voor lucht worden vrijgegeven van de biceps
digitalWrite (releaseSolenoid, laag);
vertraging (100); tijd voor de release solenoïde te sluiten voordat de tonic biceps/triceps contractie opnieuw activeren
digitalWrite (lowSolenoid, hoge);
vertraging (8000);
}
anders
{
digitalWrite (lowSolenoid, hoge);
digitalWrite (highSolenoid, laag);
}}