Codes samen voegen

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

Re: Codes samen voegen

Berichtdoor nicoverduin » 14 Feb 2016, 12:13

shooter schreef:msg moet een pointer zijn zie class reference van rf24

msg = hetzelfde als &msg[0].

@TS: Met welke IDE versie werk jij eigenlijk? Ik krijg die boodschap namelijk niet. Noch in versie 1.60 noch 1.6.5-r5

@edit:
Zo zie je maar weer hoe belangrijk het is om mee te geven:
a) welke libraries je precies gebruikt
b) welke IDE je gebruikt. De IDE's worden namelijk steeds stricter vwb de C/C++ taal gebruik.
ad a: De RF24 is fors verander tov. de oude 2012/2013 varianten. Dus heb ik de laatste ff binnengehaald. Wat er o.a. veranderd is, is dat de read() functie geen bool meer teruggeeft. available() geeft aan of er data is net als bij Serial. de gewone read() doet het maar geeft niets terug. In het voorbeeld dat je gebruikt verwacht je een bool. en zegt de compiler terecht dat het niet goed is.
Ik heb het receive voorbeeld met de laatste versie van de IDE (1.6.9 onder Eclipse) en de laatste library (zie: https://github.com/tmrh20/RF24 en http://tmrh20.github.io/RF24/)
En compileert de receive sketch nu wel.
cpp code
#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 luistermode
pinMode(LED1, OUTPUT);
}

void loop(void) {
if (radio.available()) { // is er data
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);
}
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Advertisement

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

Re: Codes samen voegen

Berichtdoor Hardruino » 14 Feb 2016, 14:48

Voordat ik je laatste sketch had gebruikt heb ik eerst geprobeerd om mijn versie 1.6.7 terug te brengen naar 1.6.5-r5
Daarmee lukte het mij ook niet om te compileren.
Zojuist de verie 1.6.7 opnieuw geïnstalleerd en de laatste sketch van schooter geplaatst en wala
Het Compileren is gelukt. :)
Ik ga nu aan de gang met een stukje hardware om te kijken of ik in de praktijk ook daadwerkelijk een led op afstand kan later aan en uitgaan.
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor Hardruino » 14 Feb 2016, 21:04

Bij de laatste sketch van scooter werkt de ontvanger volgens mij wel.
Maar als ik met een zender deel de SW1 indruk gebeurt er niets.
Soms, maar niet steeds, gaat led1 aan als ik de reset button op mijn Arduino indruk.
Ook zie ik dan in seriële monitor, van de ontvanger, 111 staan. Dit blijft staan en er verandert niets.
Ik kan deze werking van de led niet reproduceren.
m.a.w. soms lukt het om de led aan te krijgen en 111 in de seriële monitor te krijgen en meestal gebeurd er niets wat ik ook probeer.
Hieronder de sketch van de zender.

de rijnummers krijg ik er zo eenvoudig niet in.
Is daar een hulpmiddel of en trucje voor??

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

#include <SPI.h>

int msg[1];
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 7;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void) {
if (digitalRead(SW1) == HIGH) {
msg[0] = 111;
radio.write(msg, 1);
}
}
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, 22:49

dan ga ik je nu vertellen dat er nog iets onder moet komen en wel
de else en dat wordt msg[0] =222;
radio.write (msg,1);

zet er dan aub nog een delay van 1000 onder anders krijg je een overloop van msg.
stapje voor stapje, en morgen krijg je het bovenstaande als programma.
en nee regelnummers zijn niet nodig hoor.
kan wel als je code=cpp gebruikt.
paul deelen
shooter@home.nl

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

Re: Codes samen voegen

Berichtdoor nicoverduin » 15 Feb 2016, 08:27

shooter schreef:en nee regelnummers zijn niet nodig hoor.
kan wel als je code=cpp gebruikt.

zie: viewtopic.php?f=16&t=903
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 » 18 Feb 2016, 11:57

shooter,
ik heb onderstaande sketch aangepast zoals jij had geschreven.
Ben zelf nog wat aan het aanpassen geweest maar dit heeft ook geen goed resultaat opgeleverd.
Zo heb ik b.v. bij de ontvanger, voor de int SW (7), twee // geplaatst, omdat ik denk dat deze voor de ontvanger niet van belang zijn.
Maar mogelijk heb ik dit verkeert.
Nog steeds werkt de zender en/of de ontvanger nog niet.
Hieronder de zender en daar onder de ontvanger.
Toch heb ik het idee dat de oplossing vlakbij is.
Graag nog even naar kijken a.u.b.

Graag de volgende keer voor de code [ code2=cpp ] (zonder de spaties) en aan het einde[ /code2 ] zetten dan wordt de code beter te lezen. Mod
cpp code
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>

int msg[1];
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 7;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void) {
if (digitalRead(SW1) == HIGH)
{
msg[0] = 111;
radio.write(msg, 1);
delay (1000);
}
else
{
msg[0] = 222;
radio.write(msg, 1);
delay(1000);
}
}


Ontvanger

cpp code
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>


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

//#define led1 3
//#define SW1

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 (digitalRead(LED1) == HIGH){
msg[0] = 111;
radio.read(msg, 1);
delay (1000);
}
else
{
msg[0] = 222;
radio.read(msg, 1);
delay (1000);
}
}
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 » 18 Feb 2016, 13:07

Volgens mij moet jij compileer fouten krijgen. En zo ja waarom zet je die niet hier?
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 » 18 Feb 2016, 13:52

Ik krijg geen compilatie foutmelding(en)
Jij schreef in je voorlaatste mail; "en nee regelnummers zijn niet nodig hoor.
kan wel als je code=cpp gebruikt."

Ik heb het nog geprobeerd maar dacht dat het toch niet zo belangrijk was. Dus ben ik gestopt met pogingen.
Je schreef ook;
"zet er dan aub nog een delay van 1000 onder anders krijg je een overloop van msg.
stapje voor stapje, en morgen krijg je het bovenstaande als programma.
en nee regelnummers zijn niet nodig hoor.
kan wel als je code=cpp gebruikt."

Heb ik gedaan en keer op keer geprobeerd met het wijzigen van kleine dingen maar het werkt nog steeds niet.

Even een proef om te kijken of ik de cijfers ervoor krijg;
Ik zie geen regelnummers??????
cpp code
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>


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

//#define led1 3
//#define SW1

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 (digitalRead(LED1) == HIGH){
msg[0] = 111;
radio.read(msg, 1);
delay (1000);
}
else
{
msg[0] = 222;
radio.read(msg, 1);
delay (1000);
}
}
Zou ik de weg weten zal ik nooit verdwalen.

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

Re: Codes samen voegen

Berichtdoor Hardruino » 18 Feb 2016, 13:54

Ok.
Pas na het versturen komen de codes.
Dat weet ik dan ook weer.
Aldoende leert men.
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 » 18 Feb 2016, 13:56

Hardruino schreef:Ok.
Pas na het versturen komen de codes.
Dat weet ik dan ook weer.
Aldoende leert men.

Soms is het handig op andere delen van het forum te kijken wat er zowaar staat: viewtopic.php?f=16&t=903
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: igaasiho, JeremysWelO en 24 gasten