if opdracht

Arduino specifieke Software
Berichten: 3
Geregistreerd: 29 Mrt 2017, 15:00

if opdracht

Berichtdoor Basiroe » 19 Jun 2020, 21:27

Bij een if opdracht vergelijk je b.v. twee variabele bijvoorbeeld if (a<b)
{Then.......
Maar hoe zit het met
If ( !digitalRead(alarmInput))
{


}
Wat doet het uitroepteken en welke variabelen worden vergeleken?? Ik hoop dat iemand mij hier wat over kan vertellen.
Of waar ik hier iets over kan lezen.
vriendelijke groet.

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: if opdracht

Berichtdoor Gij Kieken » 19 Jun 2020, 22:03

Het uitroepteken inverteert ,dus if (not digitalRead...

Berichten: 3
Geregistreerd: 29 Mrt 2017, 15:00

Re: if opdracht

Berichtdoor Basiroe » 19 Jun 2020, 23:05

Is dit dan het zelfde als:

if ( digitalRead(alarmInput)==LOW)
{


}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: if opdracht

Berichtdoor Koepel » 20 Jun 2020, 01:23

Ja.

Als je de documentatie leest van digitalRead() : https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/.
dan staat daar dat hij een HIGH of LOW terug geeft.

Een if(!digitalRead(alarminput) is een logische 'not' op HIGH of LOW.
Toevallig is het zo dat een LOW is 0 en een HIGH is 1, en false is 0 en true is 1. Dus het werkt wel, maar het is erg lelijk.

Ik doe zulke dingen niet. Dus gebruik zulke code ook maar niet als voorbeeld.
Er zijn verschillende ontwikkelomgevingen voor de verschillende families van Arduino boards. Het is niet zo dat in elke omgeving de HIGH hetzelfde als 1 is en een LOW hetzelfde als 0. Dus het is niet alleen lelijk, het is eigenlijk ook fout.

Code: Alles selecteren
// Dit is goed
if ( digitalRead(alarmInput) == LOW)
{
  Serial.println( "Hello");
}

// Dit is ook goed
bool ingedrukt;
if( digitalRead( alarminput) == LOW)
{
  ingedrukt = true;
}
else
{
  ingedrukt = false;
}

if( ingedrukt)
{
  Serial.println( "Start");
}

if( !ingedrukt)  // een logische/boolean operatie op een boolean variabele
{
  Serial.println( "Losgelaten");
}


Als je dit ziet: "if( !ingedrukt)" dan lees je (in gedachten) het volgende: "if not ingedrukt". Dat klinkt tenminste logisch en dat is het dan ook ;) Dat is het mooie van 'bool' variabelen.

Berichten: 3
Geregistreerd: 29 Mrt 2017, 15:00

Re: if opdracht

Berichtdoor Basiroe » 20 Jun 2020, 22:42

Iedereen bedankt het is mij helemaal duidelijk.
Gelijk toegepast.
Ik kan weer verder met mijn grondwater meting met arduino en bellenbuis.
vriendelijke groet.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: if opdracht

Berichtdoor shooter » 22 Jun 2020, 09:20

je schrijft een logische actie als je schrijft (a<b) want dat is een digitale TRUE of FALSE en een IF werkt gewoon met 0 en een andere waarde (meestal 1) of zelfs -1
je kunt overigens beter er twee regels van maken en dus een variabele extra maken dan snap je ook wat er in en uit gaat.
veel plezier en laat af en toe wat van je horen.
paul deelen
shooter@home.nl

Berichten: 78
Geregistreerd: 03 Okt 2014, 17:16

Re: if opdracht

Berichtdoor ilioSS » 22 Jun 2020, 17:46

Hallo heren,
Graag zou ik mijn skills met gebruik delay willen opkrikken.
Tijdens rond neuzen ben ik een link tegen gekomen met timersetc. Auteur shooter.
Nu ben ik het artikel kwijt.

Mijn vraag aan shooter zou ju mij de link willen geven?
Bv hartelijk dank ilioSS

Berichten: 78
Geregistreerd: 03 Okt 2014, 17:16

Re: if opdracht

Berichtdoor ilioSS » 22 Jun 2020, 19:29

Hoi,
Heb het artikel reeds gevonden. Btw het is van koepel op github.
Mvrgr ilioSS

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: if opdracht

Berichtdoor shooter » 23 Jun 2020, 22:31

ja dat is koepels werk, echter het is veel slimmer als je gelijk millis() gaat gebruiken ipv delay probeer eens blink without delay uit de voorbeeklden.
paul deelen
shooter@home.nl

Berichten: 78
Geregistreerd: 03 Okt 2014, 17:16

Re: if opdracht

Berichtdoor ilioSS » 24 Jun 2020, 07:18

Hallo Shooter,

Sorry voor de verwarring.
Ik zal de blink zonderdelay() ook eens bekijken. Voor de lering ende vermaak.
Met vriendelijke groet,
ilioSS

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: eaxexol en 34 gasten