Codes samen voegen

Arduino specifieke Software
Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Codes samen voegen

Berichtdoor shooter » 11 Feb 2016, 21:07

ik had al een functie gemaakt voor setupradio en daar de setup in gezet van de radio.
ik bedoelde dus je kunt dat hele setupverhaal ook in een functie zetten dan ziet het netter uit en is simpeler te debuggen.
dus
void setup ()
{
setupradio();
setupknoppen();
}
void loop ()
loopradio();
loopknoppen();

maar dat mag je zelf doen, dan leer je er iets van.
paul deelen
shooter@home.nl

Advertisement

Gebruikers-avatar
Berichten: 42
Geregistreerd: 13 Dec 2015, 20:26
Woonplaats: Gemeente Westland

Re: Codes samen voegen

Berichtdoor Hardruino » 11 Feb 2016, 21:29

Ik wil best zoveel mogelijk zelf doen maar dit gaat mij toch te ver.
Ik begrijp er nog niet veel van.
Helaas zie ik de logica nog niet in.
Hoe lastig kan het zijn als je weet hoe het moet.
Wat kost het om mij verder te helpen??
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor shooter » 12 Feb 2016, 14:32

de setup roept aan een functie setupradio (die had ik al voor je gemaakt in de listing ) en de andere zul je zelf moeten maken want weet niet precies waar wat bijhoort.
en ook een setupknoppen.
het hele hoofdprogramma heeft dus maar 9 regels of zo de rest zit allemaal in functies.
probeer het eens en zet het resultaat hier neer, dan kijken we weer.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 42
Geregistreerd: 13 Dec 2015, 20:26
Woonplaats: Gemeente Westland

Re: Codes samen voegen

Berichtdoor Hardruino » 12 Feb 2016, 17:53

Ik begrijp echt niet wat er nou moet gebeuren.
Ik heb een paar keer de hele programmatuur gestuurd met de vraag om de beep() te vervangen.
Vandaag weer uren in de boeken zitten lezen.
Het probleem is dat alles in de voorbeelden anders is dan wat ik nodig heb.
Mijn kennis wordt wel steeds vergroot maar mijn geduld wordt op proef gesteld.
Ik begin al iets te krijgen van; ik kap ermee.

Natuurlijk kunnen jullie vinden dat ik het allemaal maar zelf moet uitzoeken maar tot nu toe lukt het me niet.

Alles wat ik probeer te veranderen of aan te passen in het programma geeft foutmeldingen.
Helaas hebben we geen beeld, anders zou je mij op m'n knieën zien zitten of gefrustreerd in boeken aan het zoeken naar oplossingen.
Ongetwijfeld zal het simpel zijn maar er zijn ontelbare mogelijkheden om op het verkeerde spoor te zitten.
Ik hoor wel of er nog iemand reageert ander bedankt voor alles.

Groet. Harry M.
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor shooter » 12 Feb 2016, 19:25

even een opzetje gemaakt.
paul deelen
shooter@home.nl

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

Re: Codes samen voegen

Berichtdoor nicoverduin » 12 Feb 2016, 21:23

Hardruino schreef:Ik begrijp echt niet wat er nou moet gebeuren.
Ik heb een paar keer de hele programmatuur gestuurd met de vraag om de beep() te vervangen.
Vandaag weer uren in de boeken zitten lezen.
Het probleem is dat alles in de voorbeelden anders is dan wat ik nodig heb.
Mijn kennis wordt wel steeds vergroot maar mijn geduld wordt op proef gesteld.
Ik begin al iets te krijgen van; ik kap ermee.

Natuurlijk kunnen jullie vinden dat ik het allemaal maar zelf moet uitzoeken maar tot nu toe lukt het me niet.

Alles wat ik probeer te veranderen of aan te passen in het programma geeft foutmeldingen.
Helaas hebben we geen beeld, anders zou je mij op m'n knieën zien zitten of gefrustreerd in boeken aan het zoeken naar oplossingen.
Ongetwijfeld zal het simpel zijn maar er zijn ontelbare mogelijkheden om op het verkeerde spoor te zitten.
Ik hoor wel of er nog iemand reageert ander bedankt voor alles.

Groet. Harry M.
Wat zo jammer is is dat je continu loopt te piepen dat het niet lukt, je foutmeldingen krijgt en wij die foutmeldingen cq code niet te zien krijgen. Dat gaat je weinig helpen. En ik zit ook niet direct te popelen om ff een opzet te maken met 2 arduino's om het te testen enz. Maar je doet nu wel erg je best om het zelf op te willen lossen.
Toen ik met die modules begon, startte ik ook met gewoon de basis.. Kunnen ze praten? Dan de volgende stap, kan ik een boodschap doorgeven? En uiteindelijk heb ik het voor elkaar. Daarna de code opknappen met commentaar die IK ZELF BEGREEP zodat ik het verder kan uitbouwen.

En de beste leerschool is nu eenmaal je kop stoten en daarvan leren. Van vallen leer je opstaan. Dus misschien moet je eerst klein beginnen en groot denken en niet met grote stappen snel thuis willen zijn.... eerst leren opstaan.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 42
Geregistreerd: 13 Dec 2015, 20:26
Woonplaats: Gemeente Westland

Re: Codes samen voegen

Berichtdoor Hardruino » 13 Feb 2016, 13:15

Bedankt voor de reactie.
Ik ga nu in kleine stapjes werken en denken.

In de onderstaande sketch heb ik // geplaatst voor de regel done = radio.read(msg,[1]);
omdat ik de sketch niet kon laden zonder foutmelding.
De melding die ik krijg is "expected identifier before numeric constant"
Blijkbaar mis ik een stukje daar.
Nou is het mij na veel zoeken en goochelen niet gelukt om te achterhalen hoe dit op te lossen.
Weet iemand waar de fout zit?
cpp code
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>


int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 3;

void setup(void){

Serial.begin(9600);

radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();

pinMode(LED1, OUTPUT);
}

void loop(void){
if (radio.available()){
bool done = false;
while (!done){
//done = radio.read(msg,[1]);
Serial.println(msg[0]);

if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
if (msg[0] == 222){delay(10);digitalWrite(LED1, LOW);}

delay(10);}
}
else { Serial.println("No radio available"); }

}
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor nicoverduin » 13 Feb 2016, 14:20

Hoewel je de regel er niet bij gaf, neem ik aan dat het om deze regel gaat:
cpp code
//done = radio.read(msg,[1]);

Dan klopt het dat je die fout krijgt. Als je nu in het voorbeeld kijkt wat er op de vorige pagina staat, zie je dat je een tikfout heb gemaakt door die 1 tussen vierkante haken te zetten. Op dat moment denkt de compiler dat je met een tabel werkt. Echter dat kan niet, wat er wordt een numeric constante = numerieke constante verwacht. Dus gewoon 1 zonder vierkante haken.
Verder zou ik voorzichtig zijn met dit soort opdrachten
cpp code
if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
if (msg[0] == 222){delay(10);digitalWrite(LED1, LOW);}

trek de code uit elkaar als volgt:
cpp code
if (msg[0] == 111){
delay(10);
digitalWrite(LED1, HIGH);
}
if (msg[0] == 222){
delay(10);
digitalWrite(LED1, LOW);
}

Dat geeft veel meer inzicht en zet er eventueel commentaar bij. Ook al heeft de auteur dat niet gedaan. Meer commentaar heeft geen enkele invloed op de verwerkingssnelheid of flash grootte. De enige baat die het geeft is dat je gaat begrijpen wat er staat.

@edit dus als je dit doet:
cpp code
#include "nrf24L01Test.h"
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

int msg[1]; // ontvangstbuffer is 1 byte lang
RF24 radio(9, 10); // CE op pin 9, CS pin op 10
const uint64_t pipe = 0xE8E8F0F0E1LL; // creer een unieke verbindings pijp naar de zender
int LED1 = 3; // ledje op pin 3

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

radio.begin(); // initialiseer de nrf24L01
radio.openReadingPipe(1, pipe); // We gaan instellen op lezen met pipe=1
radio.startListening(); // ga in luister modus
pinMode(LED1, OUTPUT);
}

void loop(void) {
if (radio.available()) { // is er een radio verbinding?
bool done = false;
while (!done) { // zolang niet alles is verwerkt
done = radio.read(msg, 1); // lees een byt in de buffer
Serial.println(msg[0]); // print alleen byte 0 (buffer is immers een byte lang

if (msg[0] == 111) { // waarde = 111?
delay(10);
digitalWrite(LED1, HIGH);
}
if (msg[0] == 222) { // waarde is 222?
delay(10);
digitalWrite(LED1, LOW);
}
delay(10);
}
} else {
Serial.println("No radio available");
}
}

Dan compileert ie gewoon en kun je volgen wat er gebeurt..
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 42
Geregistreerd: 13 Dec 2015, 20:26
Woonplaats: Gemeente Westland

Re: Codes samen voegen

Berichtdoor Hardruino » 14 Feb 2016, 00:46

regel 24 geeft een foutmelding bij het verifiëren.
namelijk; void value not ignored as it ought to be
Dat kan toch nog niet te maken hebben met de hardware?
Wel heb ik nog de PSI bibliotheek er bij gezet #include <SPI.h>
Ook dit geeft nog geen oplossing.
RF24-master.zip gebruik ik ook.
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor shooter » 14 Feb 2016, 10:22

msg moet een pointer zijn zie class reference van rf24
paul deelen
shooter@home.nl

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: uhoiyevivo en 17 gasten