Potentiometer

Ik moet een schakeling maken waarbij er 9 verschillende woorden moeten komen mijn opdracht staat eronder en ik heb ook al een code die half werkt ik hoop dat jullie mij kunnen helpen.

Maak een schakeling waarbij je door te draaien aan een knop in de seriële monitor volgende woorden zal zien: extreem koud, heel koud, koud, fris, gewoon, aangenaam, warm, heet, extreem heet. Dus 9 verschillende mogelijkheden. Als de knop helemaal links gedraaid is dan verwacht ik dat het woord extreem koud wordt afgedrukt in de seriële monitor.

ongeldige setup () {

Serial.begin (9600);
}

leegte lus () {

int sensorValue = analogRead (A0);

//Serial.println(sensorValue);

if (0 <sensorwaarde <113)
{Serial.println ("extreem koud");
}
if (113 <sensorwaarde <226)
{Serial.println ("heel koud");
}
if (226 <sensorwaarde <339)
{Serial.println ("koud");
}
if (339 <sensorwaarde <452)
{Serial.println ("fris");
}
if (452 <sensorwaarde <565)
{Serial.println ("gewoon");
}
if (565 <sensorwaarde <678)
{Serial.println ("aangenaam");
}
if (678 <sensorwaarde <791)
{Serial.println ("warm");
}
if (791 <sensorwaarde <904)
{Serial.println ("heet");
}
if (904 <sensorwaarde <1017)
{Serial.println ("extreem heet");
}

}

U krijgt mogelijk meer hulp als u dit in Google Translate plaatst en het in het Engels weergeeft.

Just sayin’.

a7

 if (0 <sensorwaarde <113)

Bovenstaande werkt niet in C/C++

if (sensorwaarde > 0 && sensorwaarde < 113)

Bovendien hoef je dat ook niet te doen.
Maar eest vraag ik me af of de waarde ooit nul kan worden, en wat dan de consequentie is (of zou moeten zijn).
Of wat als de waarde 113, 226, 339, 452, 565, 678, 791, 904, of 1017 of hoger is ?
Want die waardes ga je missen in je huidige code.
Als je eerst hebt gekeken of de waarde onder 113, dan hoef je daarna niet meer te kijken of ie er boven zit (lost meteen het bovengemelde op).
Dat scheelt per keer tijd om die vergelijking te doen, merk je nu nog niets van maar later zul je merken dat dat wel degelijk nuttig is.

Er is een "zeef" methode.
Stel je heb een vrachtwagen met stenen, en verschillende zeven boven elkaar.
De bovenste is een grove zeef die de grote stenen tegenhoudt.
Daaronder worden de zeven steeds fijner.
Het allerfijnste stof valt door alle zeven heen.

Stel je hebt stenen van 0 tot meer dan 1023 gram.

if( steen > 1017)
{
  // Dit zijn de grootste stenen
} 
else if( steen > 904)
{
  // Deze stenen zijn iets kleiner
}
else if( steen > 791)
{
}
else if( steen > 565)
{
}
else if( steen > 452)
{
}
else if( steen > 339)
{
}
else if( steen > 226)
{
}
else if( steen > 113)
{
}
else
{
  // Hier komt het fijne stof dat overal doorheen is gevallen
}

Je kunt natuurlijk ook een berekening maken. Door de 0...1023 te delen zodat je een getal van 0...9 krijgt.

if (sensorwaarde > 0 && sensorwaarde <= 113)

{Serial.println ("binnen blijven");
ofwel je begin is prima, als de sensor 113 is dan moet er ook een waarde zijn.
en het zijn dus telkens 2 voorwaarden dus 1 groter en de andere kleiner gelijk.
zet er commentaar in en je naam etc.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.