conflict in code?

Arduino specifieke Software
Berichten: 9
Geregistreerd: 16 Jun 2017, 15:03

Re: conflict in code?

Berichtdoor chrisvoorma » 20 Jun 2017, 18:39

zal er zo meteen weer mee aan de slag gaan, je hebt alweer heel veel verduidelijkt.

thanx

Advertisement

Berichten: 9
Geregistreerd: 16 Jun 2017, 15:03

Re: conflict in code?

Berichtdoor chrisvoorma » 23 Jun 2017, 19:11

zo daar was ik weer samen met de code die ik er nu van gebakken heb.


Code: Alles selecteren
//Automatische bewatering
//Arduino Uno V3, Adafruit RTC DS3231, Adafruit temp, Adafruit lcd 16x2, vochtsensor, relais
//Juni 2017

//Bij droogte 'snachts tussen 0200 en 0600 uur eventueel sproeien (Relay) ,
//en rode led aan tijdens sproeien en voor het sproeien
//bij te lage vochtigheid rode led knipperen
//vochtigheid goed groene led aan
//vochtigheid te hoog groene led knipperen (of beide leds knipperen)
//1x per 15 minuten vochtigheid meten


#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal.h>

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
const int ledRed = 3; //controle led, op afstand zien of relais aan of uit staat
const int ledGreen = 4;
const int relais = 5; //relais
const int probe = 6; //voeding vochtsensor
const int humidityPin = A0; //data vochtsensor
int ledRedState = LOW;
int ledGreenState = LOW;
unsigned long previousMillisProbe;
const long intervalProbe = 5000; //wordt als de sketch werkt 900000
unsigned long previousMillisRed; //knipper rode led
const long intervalRed = 250;
unsigned long previousMillisGreen; //knipper groene led
const long intervalGreen = 250;

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //aansluitingen LCD

void setup()
{
  Serial.begin(9600);
  Serial.println("sketch is begonnen");

  lcd.begin (16, 2);
  rtc.begin();

  //als ik de volgende 10 regels uncomment dan weet ik zeker dat er helemaal niks begint te lopen, maar dat is voor latere zorg (klok loopt nu op juiste tijd)
  //if (! rtc.begin());
  //{
  //Serial.println("Cant't find RTC");
  //lcd.print("Can't find RTC");
  //while (1);
  //}

  //if (rtc.lostPower())
  //{
  // Serial.println("lost power,set");
  //lcd.print("lost power,set");
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  //}
  // setting the pins to outputs

  pinMode(ledRed, OUTPUT);
  pinMode(ledGreen, OUTPUT);
  pinMode(relais, OUTPUT);
  pinMode(probe, OUTPUT);
  pinMode(13, OUTPUT);

  //startup meting naar serial monitor
  digitalWrite(probe, HIGH); // voeding vochtsensor aan
  delay(200);                //korte vertraging voor nauwkeurige meting vochtsensor
  int humidity = analogRead(humidityPin);
  Serial.println(humidity);
  digitalWrite(probe, LOW);  //voeding vochtsensor uit
  digitalWrite(13, LOW);
}

void loop()
{
  DateTime now = rtc.now();           //vraag huidige tijd op

  //weergave tijd op lcd
  lcd.setCursor(0, 0);

  if (now.hour() < 10)
    lcd.print('0');
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  if (now.minute() < 10)
    lcd.print('0');
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  if (now.second() < 10)
    lcd.print('0');
  lcd.print(now.second(), DEC);
  lcd.print("                ");

  // weergave tijd naar serial monitor
  //if (now.hour() < 10)
  //Serial.print('0');
  //Serial.println(now.hour(), DEC);
  //Serial.print(':');
  //if (now.minute() < 10)
  //Serial.print('0');
  //Serial.print(now.minute(), DEC);
  //Serial.print(':');
  //if (now.second() < 10)
  //Serial.print('0');
  //Serial.print(now.second(), DEC);
  //Serial.println();

  //De currentMillis, wordt gebruikt door de softwaretimers
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillisProbe >= intervalProbe)
  {
    previousMillisProbe = currentMillis;

    //Het aan en uitzetten van de probe voorkomt dat er een constante spanning op staat,
    //waardoor er dus zo min mogelijke  chemische recatie (electrolyse) plaatsvind
    //en de probe (staat in vochtige grond) erg snel vergaat.
    digitalWrite(probe, HIGH);
    Serial.println(now.hour(), DEC);

    //zeer kleine pauze om een naurkeurige meting van de vochtsensor te krijgen,
    //erg onnauwkeurig zonder vertraging (delay)
    delay(200);

    //vraag eenamlig de waarde van humidity op
    //hierdoor wordt het later mogelijk een gemiddelde te nemen
    //De 'humidity'is de ruwe waarde van de vochtsensor A0 0...1023 (0=verzadigt, 1023=kurkdroog,
    //deze waardes kunnen per vochtsensor verschillen, de gebruikte vochtsensor geeft,
    //bij volledig verzadigde grond een waarde van 196
    int humidity = analogRead(humidityPin); //lees de waarde van de vohtsensor
    //omzetten waarde vochtsensor naar percentage
    //let op, test de uiterste waardes van de vochtsensor in kurkdroge en kletsnatte grond
    //en noteer de waardes, hoogste waarde is 100%, laagste waarde is 0% vocht
    int percent = map(humidity, 1023.00, 196.00, 0.00, 100.);

    //de humidity is opgevraagd, de sensor kan uit.
    digitalWrite(probe, LOW);

    //print de waarde die gelezen wordt van de vochtsensor
    // print out the value you read:
    Serial.print(percent);
    Serial.print("% = ");
    Serial.println(humidity);

    lcd.setCursor(0, 1);
    if (percent < 10)
      lcd.print('0');
    lcd.print(percent, DEC);
    lcd.print("% vocht");
    lcd.println("                ");


    //er zijn vier states:
    //rode led is aan, grond te droog, er wordt gesproeit of er gaat gesproeit worden
    //rode led knippert, grond is droog, er wordt binnenkort gesproeit
    //groene led aan, grond is precies vochtig genoeg
    //groene led knippert, grond is te nat

    //int humidity = analogRead(humidityPin);
    //int percent = map(humidity, 1023.00, 196.00, 0.00, 100.);


    if (now.hour() >= 20 && (now.hour() <= 23)) //LET OP, tijden waartussen daadwerkelijk gesproeit word
    {
      if (percent <= 20) //vochtpercentage kleiner dan 20%, te droog
      {
        //digitalWrite(ledRed, HIGH);
        digitalWrite(relais, HIGH);
      }
      else
      {
        digitalWrite(relais, LOW);
        //digitalWrite(ledRed, LOW);
      }
    }
    if (percent < 20)
    {
      digitalWrite(ledRed, HIGH);
      Serial.println("percentage <20%");
    }
    else
    {
      digitalWrite(ledRed, LOW);
    }

    if (percent > 20 && percent < 23)
    {
      if (currentMillis - previousMillisRed >= intervalRed)
      {
        previousMillisRed = currentMillis; //opslaan laatste keer knipperen ledred

        if (ledRedState == LOW)  // als de ledred uit is aanzetten en vice verca
          ledRedState = HIGH;
        else
          ledRedState = LOW;

        digitalWrite(ledRed, ledRedState);
        Serial.println("percentage tussen 20 en 23");
      }
      else
      {
        digitalWrite(ledRed, LOW);
      }
    }
    if (percent > 20 && percent <= 30) //vochtpercentage perfect 20% - 30%
    {
      digitalWrite(ledGreen, HIGH);
      Serial.println("percentage tussen 20 en 30");
    }
    else
    {
      digitalWrite(ledGreen, LOW);
    }

    if (percent > 30) //vochtpercentage groter dan 30%, te nat
    {
      if (currentMillis - previousMillisGreen >= intervalGreen)
      {
        previousMillisGreen = currentMillis; //opslaan laatste keer knipperen ledred

        if (ledGreenState == LOW)  // als de ledgreen uit is aanzetten en vice verca
          ledGreenState = HIGH;
        else
          ledGreenState = LOW;

        digitalWrite(ledGreen, ledGreenState);
        Serial.println("percentage boven 30");
      }
    }
    else
    {
      digitalWrite(ledGreen, LOW);
    }
  }

}


Enige waar ik nu nog tegen aan loop, is dat ledRed en ledGreen niet knipperen op intervalRed/intervalGreen maar op die van intervalProbe (5000)

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

Re: conflict in code?

Berichtdoor Koepel » 24 Jun 2017, 00:18

Precies om 0:00 crashte de knop "Voorbeeld" en was mijn hele antwoord weg ! Aaaaaaaaaaah :!: Het staat ook niet bij de Concepten :(

Dit is mijn sterk ingekorte antwoord:

Je code kan ik nu lezen 8-) Heel goed :D https://www.youtube.com/watch?v=35mzCoMjjcE

De now.hour() en het relais blijven in de intervalProbe. Het schrijven van percentage naar seriele monitor ook.
Het aansturen van de leds gaat daar uit, om te kunnen knipperen.

Dit deel blijft dus zo, maar zonder de if-staments van de leds en met het schrijven van het percentage naar de seriele monitor. Ik laat dit zomaar zien om duidelijk te maken dat dit deel niet veranderd:
cpp code
//

if (currentMillis - previousMillisProbe >= intervalProbe)
{
previousMillisProbe = currentMillis;

...

if (now.hour() >= 20 && (now.hour() <= 23)) //LET OP, tijden waartussen daadwerkelijk gesproeit word
{
if (percent <= 20) //vochtpercentage kleiner dan 20%, te droog
{
//digitalWrite(ledRed, HIGH);
digitalWrite(relais, HIGH);
}
else
{
digitalWrite(relais, LOW);
//digitalWrite(ledRed, LOW);
}
}

Serial.print("percentage = ");
Serial.println( percent);
} // einde van intervalProbe


De if-statements voor leds zet ik nu netjes op, zonder overlappingen en zonder gaten, en zelfs met de 'zeef'-methode.
De if-statements komen in de loop(), op hetzelfde niveau als intervalProbe:
cpp code
//

if (currentMillis - previousMillisProbe >= intervalProbe)
{
...
} // einde van intervalProbe


if (percent < 20)
{
...
}
else if (percent < 23) // tussen 20 en 23
{
...
}
else if (percent < 30) // vochtpercentage perfect 20% - 30%
{
...
}
else // hier komt de rest, dus boven de 30.
{
...
}


Het invullen van de if-statements kun je zelf. Zodra je ergens iets met de rode led doet, zet dan altijd de groene led uit, en andersom.

Aan de hand van het percentage heb je vier 'states' (vier toestanden voor de vochtigheid en vier toestanden waarin je code zich kan bevinden). Je sketch kan eenvoudiger en duidelijker worden (en helaas wat groter) waarneer je sketch zich op de verschillende 'states' gaat baseren. Dan kun je detecteren dat de 'state' verandert, en dan hoef je alleen op dat moment iets te wijzigen. Dat is betere code dan honderden keren per seconde een led uit of aan te zetten.

Wist je dat het ledje op het Arduino board een eigen define heeft voor het pin nummer ? Dat is "LED_BUILTIN" https://www.arduino.cc/en/Reference/Constants. Je zou dus ook pinMode(LED_BUILTIN,OUTPUT); kunnen doen.

Berichten: 9
Geregistreerd: 16 Jun 2017, 15:03

Re: conflict in code?

Berichtdoor chrisvoorma » 29 Jun 2017, 22:56

zo, weer even aan het knutselen geweest.

Wat vreselijk lullig dat je je hele tekst kwijt was, dus super dat je het alsnog weer getypt hebt.

Alles werkt bijna naar behoren, een ding blijf ik mee zitten en dat is het volgende:

zodra de sketch begint te lopen springt die gelijk naar de laatste state terwijl percentage anders is, oftewel de ledGreen begint direct te knipperen (maar hij knippert nu tenminste wel met de ingestelde millis)


hieronder een klein stukje van de seriële monitor:

sketch is begonnen (begint setup)
lost power,set (instellen RTC)
846 (de gelezen analoge waarde van de probe)
percentage boven 30 (de state waarin die uiteindelijk uit komt)
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
22 (tijd)
21% = 842 (percentage, dus zeker niet boven de 30)
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30
percentage boven 30


en natuurlijk zoals de code nu is
Code: Alles selecteren
//Automatische bewatering
//Arduino Uno V3, Adafruit RTC DS3231, Adafruit temp, Adafruit lcd 16x2, vochtsensor, relais
//Juni 2017

//Bij droogte 'snachts tussen 0200 en 0600 uur eventueel sproeien (Relay) ,
//en rode led aan tijdens sproeien en voor het sproeien
//bij te lage vochtigheid rode led knipperen
//vochtigheid goed groene led aan
//vochtigheid te hoog groene led knipperen (of beide leds knipperen)
//1x per 15 minuten vochtigheid meten


#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal.h>

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
const int ledRed = 3; //controle led, op afstand zien of relais aan of uit staat
const int ledGreen = 4;
const int relais = 5; //relais
const int probe = 6; //voeding vochtsensor
const int humidityPin = A0; //data vochtsensor
int ledRedState = LOW;
int ledGreenState = LOW;
unsigned long previousMillisProbe;
const long intervalProbe = 5000; //wordt als de sketch werkt 900000
unsigned long previousMillisRed; //knipper rode led
const long intervalRed = 250;
unsigned long previousMillisGreen; //knipper groene led
const long intervalGreen = 250;

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //aansluitingen LCD

void setup()
{
  Serial.begin(9600);
  Serial.println("sketch is begonnen");

  lcd.begin (16, 2);
  rtc.begin();

  //als ik de volgende 10 regels uncomment dan weet ik zeker dat er helemaal niks begint te lopen, maar dat is voor latere zorg (klok loopt nu op juiste tijd)
  //if (! rtc.begin());
  //{
  //Serial.println("Cant't find RTC");
  //lcd.print("Can't find RTC");
  //while (1);
  //}

  //if (rtc.lostPower())
  {
    Serial.println("lost power,set");
    lcd.print("lost power,set");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // setting the pins to outputs

  pinMode(ledRed, OUTPUT);
  pinMode(ledGreen, OUTPUT);
  pinMode(relais, OUTPUT);
  pinMode(probe, OUTPUT);
  pinMode(13, OUTPUT);

  //startup meting naar serial monitor
  digitalWrite(probe, HIGH); // voeding vochtsensor aan
  delay(200);                //korte vertraging voor nauwkeurige meting vochtsensor
  int humidity = analogRead(humidityPin);
  Serial.println(humidity);
  digitalWrite(probe, LOW);  //voeding vochtsensor uit
  digitalWrite(13, LOW);
}

void loop()
{
  DateTime now = rtc.now();           //vraag huidige tijd op

  //weergave tijd op lcd
  lcd.setCursor(0, 0);

  if (now.hour() < 10)
    lcd.print('0');
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  if (now.minute() < 10)
    lcd.print('0');
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  if (now.second() < 10)
    lcd.print('0');
  lcd.print(now.second(), DEC);
  lcd.print("                ");

  // weergave tijd naar serial monitor
  //if (now.hour() < 10)
  //Serial.print('0');
  //Serial.println(now.hour(), DEC);
  //Serial.print(':');
  //if (now.minute() < 10)
  //Serial.print('0');
  //Serial.print(now.minute(), DEC);
  //Serial.print(':');
  //if (now.second() < 10)
  //Serial.print('0');
  //Serial.print(now.second(), DEC);
  //Serial.println();

  //De currentMillis, wordt gebruikt door de softwaretimers
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillisProbe >= intervalProbe)
  {
    previousMillisProbe = currentMillis;

    //Het aan en uitzetten van de probe voorkomt dat er een constante spanning op staat,
    //waardoor er dus zo min mogelijke  chemische recatie (electrolyse) plaatsvind
    //en de probe (staat in vochtige grond) erg snel vergaat.
    digitalWrite(probe, HIGH);
    Serial.println(now.hour(), DEC);

    //zeer kleine pauze om een naurkeurige meting van de vochtsensor te krijgen,
    //erg onnauwkeurig zonder vertraging (delay)
    delay(50);

    //vraag eenamlig de waarde van humidity op
    //hierdoor wordt het later mogelijk een gemiddelde te nemen
    //De 'humidity'is de ruwe waarde van de vochtsensor A0 0...1023 (0=verzadigt, 1023=kurkdroog,
    //deze waardes kunnen per vochtsensor verschillen, de gebruikte vochtsensor geeft,
    //bij volledig verzadigde grond een waarde van 196
    int humidity = analogRead(humidityPin); //lees de waarde van de vohtsensor
    //omzetten waarde vochtsensor naar percentage
    //let op, test de uiterste waardes van de vochtsensor in kurkdroge en kletsnatte grond
    //en noteer de waardes, hoogste waarde is 100%, laagste waarde is 0% vocht
    int percent = map(humidity, 1023.00, 196.00, 0.00, 100.);

    //de humidity is opgevraagd, de sensor kan uit.
    digitalWrite(probe, LOW);

    //print de waarde die gelezen wordt van de vochtsensor
    // print out the value you read:
    Serial.print(percent);
    Serial.print("% = ");
    Serial.println(humidity);

    lcd.setCursor(0, 1);
    if (percent < 10)
      lcd.print('0');
    lcd.print(percent, DEC);
    lcd.print("% vocht");
    lcd.println("                ");


    //er zijn vier states:
    //rode led is aan, grond te droog, er wordt gesproeit of er gaat gesproeit worden tussen de gestelde tijden
    //rode led knippert, grond is droog, er wordt binnenkort gesproeit
    //groene led aan, grond is precies vochtig genoeg
    //groene led knippert, grond is te nat

    if (now.hour() >= 20 && (now.hour() <= 23)) //LET OP, tijden waartussen daadwerkelijk gesproeit word
    {
      if (percent <= 20) //vochtpercentage kleiner dan 20%, te droog
      {
        digitalWrite(relais, HIGH);
      }
      else
      {
        digitalWrite(relais, LOW);
      }
    }
  }

  int humidity = analogRead(humidityPin); //lees de waarde van de vohtsensor
  int percent = map(humidity, 1023.00, 196.00, 0.00, 100.);

  if (percent < 20)
  {

    digitalWrite(ledRed, HIGH);
    digitalWrite(ledGreen, LOW);
    Serial.println("percentage <20%");
  }
  else if (percent <= 23)
  {
    if (currentMillis - previousMillisRed >= intervalRed)
    {
      previousMillisRed = currentMillis; //opslaan laatste keer knipperen ledred

      if (ledRedState == LOW)  // als de ledred uit is aanzetten en vice verca
        ledRedState = HIGH;
      else
        ledRedState = LOW;

      digitalWrite(ledRed, ledRedState);
      digitalWrite(ledGreen, HIGH);
      Serial.println("percentage tussen 20 en 23");
    }
  }
  else if (percent <= 30) //vochtpercentage perfect 20% - 30%
  {
    digitalWrite(ledGreen, HIGH);
    digitalWrite(ledRed, LOW);
    Serial.println("percentage tussen 20 en 30");
  }
  else //vochtpercentage groter dan 30%, te nat
  {
    if (currentMillis - previousMillisGreen >= intervalGreen)
    {
      previousMillisGreen = currentMillis; //opslaan laatste keer knipperen ledgreen

      if (ledGreenState == LOW)  // als de ledgreen uit is aanzetten en vice verca
        ledGreenState = HIGH;
      else
        ledGreenState = LOW;

      digitalWrite(ledGreen, ledGreenState);
      digitalWrite(ledRed, LOW);
      Serial.println("percentage boven 30");
    }

    else
    {
      digitalWrite(ledGreen, LOW);
      digitalWrite(ledRed, LOW);
    }
  }
}




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

Re: conflict in code?

Berichtdoor Koepel » 29 Jun 2017, 23:43

Ik dacht dat je de vochtigheid alleen maar af en toe bepaalt.
Dus dat zit netjes binnen de intervalProbe.

Vervolgens heb je nu de humidity toegevoegd tussen de intervalProbe en de if-statements. Op dat moment staat de spanning niet eens op de sensor.
Het gaat dus om deze twee regels:
Code: Alles selecteren
  int humidity = analogRead(humidityPin); //lees de waarde van de vohtsensor
  int percent = map(humidity, 1023.00, 196.00, 0.00, 100.);
Als je die toevoegt, dan is het nodig dat je kunt uitleggen waarom je dat doet.

Een beginwaarde bepalen gebeurt in setup(). Daar kun je nog de berekening van de 'percent' toevoegen om het compleet te maken.
Dat stukje code kan het beste precies hetzelfde zijn als binnen de intervalProbe, zodat je er een functie van kunt maken.
De 'percent' kun je misschien als globale variabele doen. Zoek in je sketch naar 'percent' om te kijken dat die niet meerdere keren wordt gedeclareerd.

Dan het percentage berekenen. Dat gaat echt niet op die manier met de 'map()' functie. Die functie werkt met integers, en als de humidity onder de 196 komt, dan gaat het mis. Wanneer je die functie hebt gemaakt voor humidity en percent, kun je dan het percentage berekenen zonder de 'map()' functie ? Op een manier die altijd werkt ?

Het is nog een kwartier voor 0:00, dus dit zal wel goed gaan.

Berichten: 9
Geregistreerd: 16 Jun 2017, 15:03

Re: conflict in code?

Berichtdoor chrisvoorma » 01 Jul 2017, 00:13

als ik die twee regels code achterwege laat: humidity en percent dan krijg ik de volgende foutmelding??
Arduino: 1.8.2 (Windows 10), TD: 1.36, Board:"Arduino/Genuino Uno"

WAARSCHUWING: Categorie 'Real-time clock' in bibliotheek DS3231 is niet geldig. Wordt gewijzigd naar 'Uncategorized'
F:\ARDUINO\sprinkler_FINAL\sprinkler_FINAL.ino: In function 'void loop()':

sprinkler_FINAL:145: error: 'percent' was not declared in this scope

Serial.print(percent);

^

sprinkler_FINAL:147: error: 'humidity' was not declared in this scope

Serial.println(humidity);

^

sprinkler_FINAL:179: error: 'percent' was not declared in this scope

if (percent < 20)

^

exit status 1
'percent' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


Daarom heb ik die er dus maar weer tussen gezet, mij ontbrak nhet echter wel aan de logica, maar tja het werkte wel op de een of ander manier.

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

Re: conflict in code?

Berichtdoor Koepel » 01 Jul 2017, 00:55

Je gaat met analogRead() de sensor lezen, terwijl de spanning op de sensor niet is aangezet. Het getal dat daar uit komt, daar heb je dus niets aan.
De compiler zegt: ik snap de variabele 'percent' niet, die ken ik niet.
Dat kun je voorkomen door 'percent' een globale variabele te maken. En dan vervolgens 'percent' ook in setup() berekenen is wel zo handig, en dan ook nog je sketch doorzoeken dat je 'percent' niet dubbel declareert. En 'percent' op een goede manier berekenen in plaats van op een verkeerde manier.

Wat hierboven staat, dat heb ik dus al geschreven :o

Vorige

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: esogolem, ulemeweja en 21 gasten