Stap 14: Arduino Software
Hier is de schets die ik schreef dat de rotatie van de rotor leest en verzamelt een lezing van A0 op elke rotatie.
Mogelijk moet u dit aanpassen voor uw Arduino
het zal output metingen op de seriële uitgang voor weergave als onbewerkte gegevens of om te worden verwerkt met een grafische programma.
Ive ook een eenvoudige grafische weergave app geschreven in "Verwerking" op een PC
---Arduino mega schets---
int pin = 7;
vluchtige int staat = laag;
int tt = 0;
VOID Setup
{
Serial.begin(9600);
pinMode (pin, uitvoer);
attachInterrupt (2, knipperen, wijziging);
}
void loop
{
Serial.println(TT);
digitalWrite (pin, staat);
}
VOID blink()
{
TT=(analogRead(a0)-200);
staat =! staat;
}
---Processing schets---
importeren van processing.serial.*;
Seriële myPort; De seriële poort
int xPos = 1; horizontale positie van de grafiek
void setup () {}
de venstergrootte van het instellen:
size(1024, 480);
Lijst van alle beschikbare seriële poorten
println(Serial.List());
Ik weet dat de eerste poort in de seriële lijst op mijn mac
is altijd mijn Arduino, zodat ik Serial.list() [0 open].
Open welke poort is degene die u gebruikt.
myPort = nieuwe Serial (dit, Serial.list() [1], 9600);
niet het genereren van een serialEvent() tenzij u een newline karakter:
myPort.bufferUntil('\n');
eerste achtergrond instellen:
Background(0);
}
VOID tekenen () {}
alles gebeurt in de serialEvent()
}
VOID serialEvent (seriële myPort) {}
de ASCII-tekenreeks ophalen:
InString koord = myPort.readStringUntil('\n');
Als (inString! = null) {}
Trim uit alle witruimte:
inString = trim(inString);
omzetten in een int en toewijzen aan de schermhoogte:
zweven inByte = float(inString);
inByte = kaart (inByte, 0, 1000, 0, hoogte);
de lijn trekken:
Stroke(255,255,255);
lijn (xPos hoogte, xPos, hoogte - inByte-20);
textSize(32);
tekst (inByte, 10, 30);
aan de rand van het scherm, ga terug naar het begin:
Als (xPos > breedte =) {}
xPos = 0;
Background(0);
}
else {}
_ / / verhogen de horizontale positie:
xPos ++;
}
}
}