one wire project

Arduino specifieke Software
Berichten: 19
Geregistreerd: 21 Jul 2017, 21:13

one wire project

Berichtdoor Dx44 » 28 Mrt 2018, 12:46

mijn project is communiceren met OneWire devices die zich laten aansturen in HEX.

Ik lees de adressen van de devices ik Serial.print ze met de extentie HEX. IK sla ze op in een matrix en converteer ze naar String Adres (HEX).

Onewire instructie getResolution( adres) accepteerd geen String. (DallesTemperature.h)
Mijn vraag hoe kan ik de Onewire selectief ( d.m.v. adres) aansturen zonder dat ik de adressen in het programma opneem m.a.w automatisch inlezen en gebruiken
Verder zie ik de volgende notities 0xA1 A1h en A1 is het juist dat deze alle gelijk zijn en dat we in de communicatie A1 gebruiken. Ik zie ook wel ds.write (0xa1,0).

Ik heb echt hulp nodig om verder te kunnen

Advertisement

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

Re: one wire project

Berichtdoor Koepel » 28 Mrt 2018, 16:29

Waar wil je wat opslaan ? Kun je proberen goed te omschrijven wat je wilt, want dat begrijp ik niet.

Hoe zullen we die 64-bit unieke code noemen ? Het "adres" van de DS18B20 ?

Normaal installeer je de DallasTemperature library en gebruik je de index of het adres.
Kun je de temperatuur lezen ? BasOnTech Les 6a: https://www.youtube.com/watch?v=_kC0871xKks.

De adressen van de DS18B20 worden vaak in de sketch gezet. Dus als je een sensor wilt toevoegen, dan is het nodig om de sketch bij te werken en opnieuw te uploaden. Dat is omslachtig, maar het is eenvoudig en het werkt.

Wil je automatisch de adressen bijvoorbeeld in EEPROM opslaan ? Dat wordt ingewikkeld. Wij willen wel helpen, maar we gaan niet de hele sketch voor je schrijven.

Berichten: 19
Geregistreerd: 21 Jul 2017, 21:13

Re: one wire project

Berichtdoor Dx44 » 29 Mrt 2018, 15:57

Bedankt voor je bericht. Het is zeker niet mijn bedoeling geweest om het programma te laten schrijven. Mijn Onewire netwerk is een Dallas weather station bestaande uit:
DS 2450 QuadA/D Converter ,DS 18S20 Digital Thermometer, DS 2423 Ram Counter en extern
DS 18B20 Digital Thermometer.

Mijn project fase 1: ben ik met een test aan het uitvoeren. Het doel daarvan is dat ik de deviceadressen inlees en deze omzet naar Hex device adressen zodat ik informatie uit kan uitwisselen met b.v. DS18B20. Dat heb ik gedaan door de ingelezen adressen op te nemen in een Matrix en deze om zetten naar een HEX string.

Hier ontstaat het probleem een integer accepteerd geen A,B.C.D,E,F de instructie,
sensors.getResolution(deviceAddress) accepteerd geen HEX string deviceaddres (DallesTemperature syntax map).
Mijn vraag is, of er een andere mogelijkheid isom mijn doelstelling op een andere manier te bereiken.
Daarnaast weet ik niet hoe Arduino omgaat met 0xFF of FF gestuurd naar een device.

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

Re: one wire project

Berichtdoor Koepel » 29 Mrt 2018, 17:45

Is het probleem hoe je de taal 'c' en 'c++' gebruikt ?

Dit is de OneWire library: https://github.com/PaulStoffregen/OneWire
In de voorbeelden kun je zien dat voor het adres dit wordt gebruikt: "byte addr[8]".

Dit is de DallasTemperature library: https://github.com/milesburton/Arduino-Temperature-Control-Library
In de voorbeelden wordt dit gebruikt: "uint8_t address[8]" of dit "DeviceAddress".
Dat is hetzelfde.

In de sketch wordt dat bijvoorbeeld zo ingevuld:
Code: Alles selecteren
DeviceAddress insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };


Kijk eens naar dit voorbeeld: https://github.com/milesburton/Arduino-Temperature-Control-Library/blob/master/examples/Multiple/Multiple.pde.
Er is een speciale variabele "DeviceAddress" gemaakt, die eigenlijk een "uint8_t address[8]" is.
In dat voorbeeld staat hoe je die kunt invullen (dat staat binnen het commentaar) en hoe je die gebruikt met getResolution().

Dat "DeviceAddress" is een extraatje van de DallasTemperature library. Als je de OneWire library gebruikt, dan zijn het weer de gewone "byte addr[8]".

Als het niet lukt, zou je dan je sketch willen laten zien ?

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten