Go Down

Topic: Potentiometer (Read 202 times) previous topic - next topic

runeseghers



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");
 }

 
}

alto777

#1
Jan 09, 2021, 03:48 pm Last Edit: Jan 09, 2021, 03:49 pm by alto777
U krijgt mogelijk meer hulp als u dit in Google Translate plaatst en het in het Engels weergeeft.

Just sayin'.

a7

sterretje

#2
Jan 10, 2021, 11:14 am Last Edit: Jan 10, 2021, 11:14 am by sterretje
Code: [Select]
if (0 <sensorwaarde <113)

Bovenstaande werkt niet in C/C++

Code: [Select]
if (sensorwaarde > 0 && sensorwaarde < 113)
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

MAS3

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.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Koepel

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.
Code: [Select]
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.

shooter

 
Code: [Select]
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.
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Go Up