Een vraag over Arduino Serial available

algemene C code
Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 02:28

Hallo lieve mensen,

Ik moet een kleine programma schrijven voor school, normaal staat alles uitgelegd maar deze keer kan ik er nu niet uitkomen na 3 uur zoeken dacht ik van laat me het maar op deze forum vragen.
Jullie hoeven niet helemaal het antwoord te geven maar mij in de goede richting te duwen.

Schrijf een programma dat een tentamencijfer in het vakje cijfer zet, die doe je door
gebruik te maken van de seriële monitor. Als het cijfer groter of gelijk is aan 5.5 dan
wordt er afgedrukt voldoende anders wordt er afgedrukt onvoldoende. Test je programma
door verschillende cijfers te nemen


Ik heb tot nu toe dit:

cpp code
void setup() {
Serial.begin(9600);

}

void loop() {
double getal;
getal = 0;
if (Serial.available() >0){
getal= Serial.parseFloat();
Serial.println(getal > 0);
Serial.println("Dit is een voldoende");
}
if (Serial.available() >0){
getal = Serial.parseFloat();
Serial.println(getal > 5.5);
Serial.println("Dit is een onvoldoende");


}
}


Maar dat werkt niet echt goed, echt helemaal niet goed haha. Ik weet wel hoe je dit kan doen zonder de Serial available maar op deze manier kom ik er jammer genoeg niet uit, en ik ben een perfectionist dus ik baal er echt van dat ik het zelf niet kan oplossen maargoed.

Ik hoor het wel van jullie!

Alvast bedankt

MVG,

Gester

Advertisement

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

Re: Een vraag over Arduino Serial available

Berichtdoor Koepel » 25 Okt 2017, 03:38

Je schrijft dat je een perfectionist bent. Nou, bewijs dat maar eens :geek:
Zou je de code op consequent dezelfde manier willen schrijven, waarbij ieder haakje en iedere spatie en het inspringen en lege regels overal juist is ? Als je dat nu leert om netjes te doen, dan heb je daar later heel veel plezier van.
De code in een functie staat natuurlijk ingesprongen.

cpp code
void setup() {
Serial.begin(9600);
}


Weet je wat dit is ?
cpp code
Serial.println(getal > 0);
Wij dus ook niet.

Je kunt programmacode schrijven door een programma te maken dat doet wat het moet doen. Maar @nicoverduin en ik hebben ook geleerd om niet van de code uit te gaan, maar van de datastromen. Dat maakt het kijken naar een probleem veel meer open.

Bij jouw opdracht is er dus een datastroom (van de seriele poort) die binnen komt, en een datastroom die er weer uit gaat (naar de seriële poort, en wel de tekst "voldoende" of "onvoldoende"). Daartussen wordt die datastroom verwerkt. Als je dat als plaatje voor je ziet, dan begrijp je hoe de code er uit moet gaan zien.

De Serial.parseFloat() lijkt me een goed idee. En pas een Serial.parseFloat() doen als er een Serial.available() is, dat is ook prima. Maar waarom doe je dat twee keer ? Heb je twee binnenkomende datastromen ? Je wilt toch niet een binnenkomende datastroom die gepunnikt is van twee in elkaar geweven kantklospatronen ?

Dus in de 'loop()' lees je één keer de datastroom binnen (Serial.available en Serial.parseFloat), dan nog steeds binnen het if-statement van de Serial.available() gaan kijken of het 5.5 of hoger is en de tekst afdrukken.

Is het de bedoeling dat je ook vakjes afdrukt en het cijfer laat zien ? Misschien is Arduino 1.8.5 eindelijk helemaal UTF-8, dus misschien kun je tabellen tekenen op de seriële monitor. Voor de grap zou je kunnen proberen om de UTF-8 tekens en er achter te zetten. Je kunt ze hier vinden: https://www.utf8icons.com/. Pas op met dit forum, sommige UTF-8 tekens worden niet geaccepteerd en dan wordt je bericht niet geplaatst.

Gebruikers-avatar
Berichten: 4892
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Een vraag over Arduino Serial available

Berichtdoor nicoverduin » 25 Okt 2017, 08:31

Dat perfectionisme gaan we misschien nog zien. Voor welk onderwijs is dit?
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Re: Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 16:49

Oke ik ga proberen het aan te passen dan stuur ik dat straks weer hierin. @nicoverduin Het is voor het MBO ICT niveau 4 eerste leerjaar

Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Re: Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 16:50

Ik heb mezelf al wel geleerd hoe je websites moet maken, dus dat vind ik wel erg leuk. http://www.gester.nl. Alleen is dit wel weer een andere codetaal wat ik wel erg leuk vind.

Gebruikers-avatar
Berichten: 4892
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Een vraag over Arduino Serial available

Berichtdoor nicoverduin » 25 Okt 2017, 17:45

Er zijn genoeg tutorials te vinden voor de arduino. Zeker als je googled op “ arduino cursus nederlands roc”
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Re: Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 21:51

Ik vind echt helemaal niks via google over Serial.Available, raar dat niemand het ergens duidelijk uitlegt. Bedankt voor je tip @koepel want doordoor ben ik er net uitgekomen behalve dat er 1 dingetje niet goed gaat. Als ik een cijfer intyp krijg ik TOT 5.4 dat het een onvoldoende is. Maar als ik een 5.5 invoer en het een voldoende is print het eerst "Onvoldoende" en daarna eronder "voldoende".? Heb je nog een tipje?

Dit is nu mijn code:
Code: Alles selecteren
void setup() {
Serial.begin(9600);

}

void loop() {
  double getal;
  getal = 0;
  if (Serial.available() >0){
  getal= Serial.parseFloat();

   Serial.println("Dit is een onvoldoende");
}
  if (getal > 5.4){
  getal = Serial.parseFloat();
  Serial.println("Dit is een voldoende");
 
 
}
}


MVG,

Gester

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

Re: Een vraag over Arduino Serial available

Berichtdoor Gij Kieken » 25 Okt 2017, 22:05

Wat dacht je van nog een vergelijking tussen getal en je eerste Serial.println.
En een if Else constructie opbouwen.

Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Re: Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 22:22

Ik heb een else if ervan gemaakt maar dan krijg ik alleen maar onvoldoende geprint.

Code: Alles selecteren
void setup() {
Serial.begin(9600);

}

void loop() {
  double getal;
  getal = 0;
  if (Serial.available() >0){
  getal= Serial.parseFloat();

   Serial.println("Dit is een onvoldoende");
   
}
else{
  if (getal > 5.4){
 
  Serial.println("Dit is een voldoende");
 
 
}
}
}

Berichten: 27
Geregistreerd: 08 Okt 2017, 21:48

Re: Een vraag over Arduino Serial available

Berichtdoor Gester1989 » 25 Okt 2017, 22:22

En verder begrijp ik je antwoord niet echt.

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten