Probleem met delay
31 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Re: Probleem met delay
De compiler zegt wat er aan de hand is: "conflicting declaration 'int relais'".
Dit is het conflict:
De compiler ziet twee keer de variabele 'relais'.
Dit is het conflict:
- Code: Alles selecteren
const int relais = 12;
...
int relais = HIGH;
De compiler ziet twee keer de variabele 'relais'.
Advertisement
Re: Probleem met delay
Typische 'forum' vragen antwoord ik liever op het forum. Je kunt me een privebericht sturen om me ergens op attent te maken, bijvoorbeeld dat er op het forum een vraag over millis() of I2C is.
Ik gebruik Arduino.cc IDE 1.6.10 in linux 64-bit, en op dit moment heb een Arduino Uno op mijn tafel liggen om mee te testen.
Deze sketch http://www.arduinoforum.nl/viewtopic.php?p=14160#p14160 compileerde normaal, en het ledje knipperde.
Dit is een mini-test-sketch:
cpp code
Getest met Arduino.cc 1.6.9 en 1.6.10 en Arduino.org 1.7.10.
Als iets niet werkt, kun je dan aangeven wat er niet werkt. Geeft de compiler een fout ? wat zijn dan de eerste foutmeldingen. Gaat het uploaden mis ? wat is dan de foutmelding. Of gaat alles goed en doet de sketch niet wat het zou moeten doen ? wat gebeurt er dan wel.
Ik gebruik Arduino.cc IDE 1.6.10 in linux 64-bit, en op dit moment heb een Arduino Uno op mijn tafel liggen om mee te testen.
Deze sketch http://www.arduinoforum.nl/viewtopic.php?p=14160#p14160 compileerde normaal, en het ledje knipperde.
Dit is een mini-test-sketch:
cpp code
// ----------------------------------------
// Mini test sketch.
// ----------------------------------------
const int ledPin = 13;
unsigned long previousMillis = 0UL;
void setup()
{
pinMode( ledPin, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if( currentMillis - previousMillis >= 80UL) // blink very fast
{
previousMillis = currentMillis;
digitalWrite( ledPin, digitalRead( ledPin) == HIGH ? LOW : HIGH);
}
}
Getest met Arduino.cc 1.6.9 en 1.6.10 en Arduino.org 1.7.10.
Als iets niet werkt, kun je dan aangeven wat er niet werkt. Geeft de compiler een fout ? wat zijn dan de eerste foutmeldingen. Gaat het uploaden mis ? wat is dan de foutmelding. Of gaat alles goed en doet de sketch niet wat het zou moeten doen ? wat gebeurt er dan wel.
Re: Probleem met delay
Sorry voor het prive bericht dat ten eerste
ik ben nu zelf aan het testen en de sketch nog steeds aan het proberen. De tijd was mijn fout.
Ondertussen de sketch aangepast en het werkt (eigenlijk stom van me) zie de LOW HIGH omgedraait bij de knop en de sensorState
// ----------------------------------------
// De gebruikte pinnen
//
const int relaisPin = 13;
const int knopPin =2;
const int sensorPin=5;
unsigned long previousMillis = 0UL;
const unsigned long interval = 1UL * 60UL * 1000UL; // 30 minutes (30 * 60 seconden * 1000 milli)
int relaisState; // globale variabele, onthoud de status van het relais. HIGH is uit, LOW is aan.
unsigned long previousMillisLed = 0UL;
int ledState;
void setup()
{
// ----------------------------------------
// Zet de pinnen
// ----------------------------------------
pinMode( relaisPin, OUTPUT); // dit wordt OUTPUT en LOW, is dat de bedoeling ?
pinMode( knopPin, INPUT);
pinMode(sensorPin,INPUT);
// ----------------------------------------
// Initialiseer de variabelen
// ----------------------------------------
relaisState = LOW; // het relais staat aan.
}
void loop()
{
// ----------------------------------------
// Eerste deel van de code in de loop(), haal alle informatie op
// ----------------------------------------
// een enkele 'currentMillis' voor de hele code in de loop()
unsigned long currentMillis = millis();
int knopState = digitalRead(knopPin);
int sensorState = digitalRead(sensorPin);
if ( relaisState == LOW)
{
// Het relais is aan, kijk of er 15 seconden verstreken zijn.
if ( currentMillis - previousMillis >= 15000UL) // 'UL' is 'unsigned long'
{
previousMillis = currentMillis; // onthoudt deze tijd om hierna de 30 minuten te kunnen gaan doen.
digitalWrite( relaisPin, HIGH); // relais uit
relaisState = HIGH; // high is uit;
}
}
else
{
// Het relais is uit, kijk of de 30 minuten wachttijd om zijn, of dat de knop of de sensor aktief wordt.
if ( currentMillis - previousMillis >= interval||knopState ==HIGH || sensorState == HIGH )
{
previousMillis = currentMillis; // onthoudt deze tijd om hierna de 15 seconden te kunnen doen.
digitalWrite( relaisPin, LOW); // relais aan
relaisState = LOW;
}
}
}
ik ben nu zelf aan het testen en de sketch nog steeds aan het proberen. De tijd was mijn fout.
Ondertussen de sketch aangepast en het werkt (eigenlijk stom van me) zie de LOW HIGH omgedraait bij de knop en de sensorState
// ----------------------------------------
// De gebruikte pinnen
//
const int relaisPin = 13;
const int knopPin =2;
const int sensorPin=5;
unsigned long previousMillis = 0UL;
const unsigned long interval = 1UL * 60UL * 1000UL; // 30 minutes (30 * 60 seconden * 1000 milli)
int relaisState; // globale variabele, onthoud de status van het relais. HIGH is uit, LOW is aan.
unsigned long previousMillisLed = 0UL;
int ledState;
void setup()
{
// ----------------------------------------
// Zet de pinnen
// ----------------------------------------
pinMode( relaisPin, OUTPUT); // dit wordt OUTPUT en LOW, is dat de bedoeling ?
pinMode( knopPin, INPUT);
pinMode(sensorPin,INPUT);
// ----------------------------------------
// Initialiseer de variabelen
// ----------------------------------------
relaisState = LOW; // het relais staat aan.
}
void loop()
{
// ----------------------------------------
// Eerste deel van de code in de loop(), haal alle informatie op
// ----------------------------------------
// een enkele 'currentMillis' voor de hele code in de loop()
unsigned long currentMillis = millis();
int knopState = digitalRead(knopPin);
int sensorState = digitalRead(sensorPin);
if ( relaisState == LOW)
{
// Het relais is aan, kijk of er 15 seconden verstreken zijn.
if ( currentMillis - previousMillis >= 15000UL) // 'UL' is 'unsigned long'
{
previousMillis = currentMillis; // onthoudt deze tijd om hierna de 30 minuten te kunnen gaan doen.
digitalWrite( relaisPin, HIGH); // relais uit
relaisState = HIGH; // high is uit;
}
}
else
{
// Het relais is uit, kijk of de 30 minuten wachttijd om zijn, of dat de knop of de sensor aktief wordt.
if ( currentMillis - previousMillis >= interval||knopState ==HIGH || sensorState == HIGH )
{
previousMillis = currentMillis; // onthoudt deze tijd om hierna de 15 seconden te kunnen doen.
digitalWrite( relaisPin, LOW); // relais aan
relaisState = LOW;
}
}
}
Laatst gewijzigd door bertjenl op 09 Aug 2016, 22:00, in totaal 1 keer gewijzigd.
Re: Probleem met delay
zit er verschil in de pinnen van de UNO tussen het ene bord en het andere. Is dit bekent. Ik heb nu 2 arduino uno borden liggen op de ene gaat de ene sketch goed op de andere niet
Heb dit nu in dit topic omdat dit de oorzaak kan wezen dat de sketch niet werkte)
Heb dit nu in dit topic omdat dit de oorzaak kan wezen dat de sketch niet werkte)
Re: Probleem met delay
Een UNO is een UNO, simpel, alleen de USB kan anders zijn, de echte hebben ftdi en de andere een ch341 chip (chinees, maar werkt ook wel hoor.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Probleem met delay
Als je pin 13 als uitgang hebt, dan is alles gelijk.
Een CH340G chip heeft wel een extra driver nodig.
Wat is er mis met het foute Uno board ? Kun je de led op pin 13 aan en uit zetten ?
Soms raakt de bootloader corrupt, en helpt het om een nieuwe bootloader er op te zetten met een programmer. Als er echt iets stuk aan het board is, dan kun je het beter weg doen.
Een Arduino Uno R3 kost 2.52 euro op AliExpress.com, 6.36 (ik heb misschien niet goed gezocht) op Ebay.nl, 4.19 op DX.com.
Kies altijd de 'R3' versie voor een Uno of Mega. Dat is de nieuwste versie.
Ik heb eens een goedkope van onder de 5 euro gekocht om te zien of het werkte, en hij doet het nog steeds. Maar ik ga het niet buiten gebruiken in de vrieskou om de temperatuur te meten, dan kies ik voor een officieel board of een zelfgemaakte bare-bone Arduino.
Bij AliExpress.com, zoek op "uno r3" en stel de prijs in tussen de 2 en 3 euro, en click "free shipping" aan.
Een CH340G chip heeft wel een extra driver nodig.
Wat is er mis met het foute Uno board ? Kun je de led op pin 13 aan en uit zetten ?
Soms raakt de bootloader corrupt, en helpt het om een nieuwe bootloader er op te zetten met een programmer. Als er echt iets stuk aan het board is, dan kun je het beter weg doen.
Een Arduino Uno R3 kost 2.52 euro op AliExpress.com, 6.36 (ik heb misschien niet goed gezocht) op Ebay.nl, 4.19 op DX.com.
Kies altijd de 'R3' versie voor een Uno of Mega. Dat is de nieuwste versie.
Ik heb eens een goedkope van onder de 5 euro gekocht om te zien of het werkte, en hij doet het nog steeds. Maar ik ga het niet buiten gebruiken in de vrieskou om de temperatuur te meten, dan kies ik voor een officieel board of een zelfgemaakte bare-bone Arduino.
Bij AliExpress.com, zoek op "uno r3" en stel de prijs in tussen de 2 en 3 euro, en click "free shipping" aan.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Probleem met delay
ligt er aan wat voor type 328P erop zit. Als het een type AU (Automotive) is, dan maakt het niet uit wie het bordje gemaakt heeft....Alleen de meesten weten dat niet.Koepel schreef:Ik heb eens een goedkope van onder de 5 euro gekocht om te zien of het werkte, en hij doet het nog steeds. Maar ik ga het niet buiten gebruiken in de vrieskou om de temperatuur te meten, dan kies ik voor een officieel board of een zelfgemaakte bare-bone Arduino.
Re: Probleem met delay
Het gaat om het kristal en de condensators. Stop maar eens een paar Arduino boardjes in de diepvries. De slechte kristallen stoppen onder de nul graden. Een ATmega chip die draait op de interne oscillator blijft het natuurlijk altijd doen. Misschien dat een resonator ook blijft werken.
Re: Probleem met delay
Heren alle bedankt voor de reacties.
Dit project gaat me nu uitstekend lukken
En dan op naar de volgende
Dit is leuker dan ik had verwacht
Ook zit hier op het forum giga veel kennis
Heren bedankt
Bert
Dit project gaat me nu uitstekend lukken
En dan op naar de volgende
Dit is leuker dan ik had verwacht
Ook zit hier op het forum giga veel kennis
Heren bedankt
Bert
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: Probleem met delay
De grootste moeilijkheid die ik had met delay vervangen door millis werd opgelost door toepassing van de info op deze pagina:
https://www.baldengineer.com/millis-tutorial.html
Ik hoop dat het voor de medeforum bezoekers net zo nuttig mag zijn als dat het voor mij geweest is.
https://www.baldengineer.com/millis-tutorial.html
Ik hoop dat het voor de medeforum bezoekers net zo nuttig mag zijn als dat het voor mij geweest is.
31 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Wie is er online?
Gebruikers in dit forum: PatrickAbomi en 101 gasten