Arduino Wind Chill maskin (8 / 10 steg)
Steg 8: Med hjälp av MCP9701 temperatur sensor
Problem: Den maximala spänningen är 3,0 volt och standard Arduino använder 5 volt utbudet ofta från dator/laptop USB. Denna spänning kan variera orsakar avläsningarna att variera.
Lösning: För att förbättra noggrannheten, beslöt jag att använda 3.3Vdc från Arduino ansluten till Arduino AREF stift genom en 3.3 K motstånd. 3.3Vdc källan är mycket mer exakt än 5Vdc. För techno-nördar, inre motstånd är 32K så AREF = 3.3/(32K/(32K+3.3K) = 3,0 Vdc.
För att använda AREF PIN-koden, var följande rad läggas till Arduino koden.
analogReference(EXTERNAL);
Software Design:
Här är den grundläggande koden:
Få temperatur avläsningar genomsnittliga nsamps
för (byte j = 0; j < nsamp; j ++)
{
ThermValue += analogRead(ThermPin);
}
ThermValueAvg = ThermValue/nsamp;
mVout=(float) ThermValueAvg*3000.0/1023.0; 3.0V = 3000mV
TempC =(mVout-400.0)/19,5; Ta = (Vout-400mV) / 19.5mV //Original
TempC =(mVout-490.0)/19,5; Ta = (Vout-400mV) / 19.5mV //Modified
TempF = TempC * (9,0/5.0) + 32;
Kod förklaring: Den analoga 2 ThermPin provtas tio gånger då i genomsnitt. Genomsnitt analoga räkningen konverteras till mVolts(mVout). MVout omvandlas till TempC (Celsius). Den första TempC beräkningen är kommenterade ut. Detta är den föreslagna omvandlingen. För den MCP9701 jag var med, tyckte jag att detta var av ca 8 grader, så jag justerade (prova) formeln till andra formeln. Du kan justera 490 värdet, om du använder en MCP9701 och tycker att det inte rapporterar rätt temperatur. Sedan konverterar nästa rad TempC till TempF (Fahrenheit).