meerdere arduinos

IDE gerelateerde berichten
Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: meerdere arduinos

Berichtdoor shooter » 18 Dec 2016, 13:03

die agostini is inderdaad poppenspul, en zelf bouwen is leuker.
zoals koepel zegt op de mega heb je meer seriele poorten dus comms is geen probleem.

over jouw void?
ja dat kan zeker en is ook de bedoeling als je iets groter gaat schrijven, dan roep je in de loop telkens een functie aan.bijvoorbeeld comms();
rug(); arml(); armr enz.
dat hoeven overigens geen voids te zijn, maar je kunt hierin ook waarden meegeven en teruggeven en dan staat er bijv int arml(positie,snelheid);
in de functie staat dan een return met de actuele positie.

zorg voor 1 master en meerdere slaves,
lees blink without delay en je zult merken dat je dan bloedsnel kunt werken.
kijk eens naar multistepper.
paul deelen
shooter@home.nl

Advertisement

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 18 Dec 2016, 14:41

shooter heel erg bedankt.
voor de reactie en ook de goede uitleg.
ik ga er alleeen helaas niet vandaag aan werken want heb met de minecraft server die ik heb wat problemen doordat een van de beheerders de boel heeft zitten verzieken dus moet wat dingen herstellen.
maar ik ga van de week zeker verder puzelen dus ik hou jullie op de hoogte

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

Re: meerdere arduinos

Berichtdoor shooter » 22 Dec 2016, 21:17

ja mijn zoon doet minecraft en heeft ook gemerkt dat een goede backup belangrijk is.
paul deelen
shooter@home.nl

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 20 Jan 2017, 13:18

zo ik heb in middels het arduino spul weer op ge pakt.
qua communicatie heb ik tog maar ge kozen voor i2c.
dit omdat je dan maar 2 pinnen in gebruik hebt van iedere arduino.
want bij serial moet alles met elkaar verbonden zijn op een eigen seriele poort.
ik heb op dit moment in middels het zo ver dat de tekst hallo van de ene naar de andere prima verzonden word.
echter wil je natuurlijk meer informatie gaan verzenden en daarom heb ik een test opstelling gemaakt bestaande uit 1 master
en 1 slave.
op de slave zit een dht11 temperatuur sensor en lugtvogtighijd sensor.
en die word goed gemeten.
ik probeer nu die gegevens naar de master te sturen die het dan weer via serial print moet sturen naar de computer.
egter werkt dat dus nog niet.
krijg alleen maar de letter y terug.
hopelijk kan iemand me hiermee helpen

de code van de slafe is op dit moment
Code: Alles selecteren
#include <dht.h>

#include <Wire.h>

dht DHT;

#define DHT11_PIN 7
int temp;
int hum;
void setup(){
  Serial.begin(9600);
    Wire.begin(8);                // join i2c bus with address #8
  Wire.onRequest(requestEvent); // register event
}

void loop()
{
  int chk = DHT.read11(DHT11_PIN);
  Serial.print("Temperature = ");
  Serial.println(DHT.temperature);
  Serial.print("Humidity = ");
  Serial.println(DHT.humidity);
  delay(1000);
  temp = (DHT.temperature);
  hum = (DHT.humidity);
    Serial.print("variable = ");
    Serial.print(temp);
    Serial.print(" ");
    Serial.print(hum);
    Serial.print("\n");
 
}

void requestEvent() {
Wire.write(temp);
Wire.write(hum);

}



en de code voer de master is nu
Code: Alles selecteren
// Wire Master Reader
// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library
// Reads data from an I2C/TWI slave device
// Refer to the "Wire Slave Sender" example for use with this

// Created 29 March 2006

// This example code is in the public domain.


#include <Wire.h>
int temp = 0;
int hum = 0;

void setup() {
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop() {
  Wire.requestFrom(8, 6);    // request 6 bytes from slave device #8

  while (Wire.available()) { // slave may send less than requested
    char temp = Wire.read(); // receive a byte as character
    char hum = Wire.read();
    Serial.print(temp);         // print the character
    Serial.print(" ");
    Serial.print(hum);
    Serial.print("\n");
  }

  delay(500);
}


hopelijk kan iemand me hiermee verder helpen

groeten: peter

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

Re: meerdere arduinos

Berichtdoor nicoverduin » 20 Jan 2017, 13:26

Je schrijft toch 4 bytes? geen 6.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: meerdere arduinos

Berichtdoor Koepel » 20 Jan 2017, 14:34

Wanneer je deze library gebruikt: https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib, dan zijn 'DHT.temperature' en 'DHT.humidity' een 'double'. Voor eenvoudige Arduino boards gebruikt de compiler daar voor in de plaats 'float'. Die 'float' zet je om naar een integer, vervolgens verstuur je daar 8 bit van, en de ontvanger vat dat op als een signed 8-bit char, en daarvan laat je het karakter zien dat hoort bij de ascii waarde van dat char.
Na de Wire.requestFrom() heeft de Master 6 bytes in de buffer, waarvan de eerste twee geldige bytes van de Slave zijn. Je leest de temperatuur en luchtvochtigheid drie keer uit die buffer, waarvan de laatste twee keer willekeurige data is.

Wat wil je over de I2C bus sturen ?
Een double, een float, een integer, een ascii teken, of een char ?
Als je dat weet, dan is het nodig om dat ook aan de compiler te vertellen ;)

Ik zou voor mezelf een 'struct' over de bus sturen. Dan ligt de samenstelling van het pakket vast, en weten de Slave en Master wat de gegevens zijn.

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

Re: meerdere arduinos

Berichtdoor nicoverduin » 20 Jan 2017, 15:18

+1
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: meerdere arduinos

Berichtdoor shooter » 20 Jan 2017, 19:35

zowel temp als hum zijn meerdere characters en je kunt ze als float behandelen, maar dan blijven het 2x4 bytes.
en zoals voorgesteld maak er een struct van, dan weet je gewoon wat je krijgt.
kijk naar easytransfer voor een eenvoudige communicatie.
paul deelen
shooter@home.nl

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 20 Jan 2017, 19:59

shooter en de rest als eerste bedankt voor jullie reactie.
verder shooter zie ik het mouw goed bij easytransfer er niet word ge werkt met een master en de rest allemaal slaves?
want dan zou ik denken dat dat helemaal iedeeaal is omdat je dan rechtstreeks van slave 1 naar 2 kan ipv eerst naar de master die het dan weer door gestuurd.
en dat zou dus helemaal iedeaal zijn.

groeten: peter

Vorige

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten