Stap 4: Schrijven van sommige software
Op de Arduino nodig ik om te lezen van de ADC-pinnen om waarden, en vervolgens converteren in kPa.
Int Sample1 = analogRead(A0);
Int Sample2 = analogRead(A1);
Int Sample3 = analogRead(A2);
Int Sample3 = analogRead(A3);
Aangezien de ADC als 0-1023 voor 0v-5v leest, de sensoren zal het lezen van 0.1v als 50 kPa en 4.6v als 0 kPa; Ik kan het volgende stukje code vervolgens gebruiken om ze te converteren. Note that I 'm using integer math (geen decimalen) zodat ik de werkelijke waarden worden behandeld als het nummer * 1000 (dus de toevoeging aan de naam met kPa1000).
Const statische lange kPa1000PerAdcUnit = 54; 0.05425347 per eenheid van de ADC;
Const statische lange adcValueFor0Kpa = 942; 4.6V
lange kPa1000Value = ((adcValueFor0Kpa-adcValue) * kPa1000PerAdcUnit);
Ik toegepast sommige filteren, min en max waarden verzameld gedurende een periode, en een paar andere dingen met het primaire doel van het verminderen van de hoeveelheid informatie die wordt verzameld.
De waarden kunnen vervolgens worden verzonden naar de PC met behulp van de functie voor seriële waar het tweede deel van de software in komt.
Op de PC schreef ik een Windows WPF applicatie in C# die naar de seriële poort voor data afkomstig van de Arduino luisterde, en had toen het vier staafdiagrammen trekken om de gegevens samen met nuttige waarden weer te geven. Ik voegde een paar knoppen en seriële opdrachten tussen de Arduino en PC te controle kalibratie en wanneer te starten en stoppen van de bemonsterings- en spuwen van alle gegevens.