Codes samen voegen
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Codes samen voegen
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);
}
}
Advertisement
Re: Codes samen voegen
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.
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.
Re: Codes samen voegen
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);
}
}
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.
Re: Codes samen voegen
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.
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
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Codes samen voegen
shooter schreef:en nee regelnummers zijn niet nodig hoor.
kan wel als je code=cpp gebruikt.
zie: viewtopic.php?f=16&t=903
Re: Codes samen voegen
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
Ontvanger
cpp code
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.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Codes samen voegen
Volgens mij moet jij compileer fouten krijgen. En zo ja waarom zet je die niet hier?
Re: Codes samen voegen
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
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.
Re: Codes samen voegen
Ok.
Pas na het versturen komen de codes.
Dat weet ik dan ook weer.
Aldoende leert men.
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.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Codes samen voegen
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
Wie is er online?
Gebruikers in dit forum: igaasiho, JeremysWelO en 24 gasten