[ milekNS @ 07.12.2015. 19:15 ] @
Dakle... trenutno imam arduino uno i tek započet kod za modbus rtu slave, racunar je master naravno. To trenutno se odnosi samo na čitanje analognih ulaza. E sada, ja bih želeo da na arduino prokačim onewire ds18b20 digitalni temperaturni senzor i nekako njegovo očitavanje recimo 73.5C (samo primer) da spakujem/konvertujem u (mislim da je to Function Code 03 - Read Holding Registers) kao da je očitana analogna vrednost i da tako šalje serijski na aplikaciju na pc-u (posluzice za testiranje qModMaster a dalje u planu neka scada za siromaha m2m mango). Pretpostavljam da ovo nisam jasno napisao jer evo i ja sam čitao par puta da vidim ima li smisla pa logicno pojasnicu po potrebi :D p.s. ovako izgleda osnova koda koji radi modbus rtu Code: modbusDevice regBank; modbusSlave slave; int AI0,AI1,AI2,AI3,AI4,AI5; void setup() { regBank.setId(1); ///Set Slave ID //Analog input registers regBank.add(30001); regBank.add(30002); regBank.add(30003); regBank.add(30004); regBank.add(30005); regBank.add(30006); slave._device = ®Bank; slave.setBaud(19200); } void loop(){ while(1){ //Analogni ulaz AI0 = analogRead(0); delay(10); AI0 = analogRead(0); regBank.set(30001, (word) AI0); delay(10); AI1 = analogRead(1); delay(10); AI1 = analogRead(1); regBank.set(30002, (word) AI1); delay(10); AI2 = analogRead(2); delay(10); AI2 = analogRead(2); regBank.set(30003, (word) AI2); delay(10); AI3 = analogRead(3); delay(10); AI3 = analogRead(3); regBank.set(30004, (word) AI3); delay(10); AI4 = analogRead(4); delay(10); AI4 = analogRead(4); regBank.set(30005, (word) AI4); delay(10); AI5 = analogRead(5); delay(10); AI5 = analogRead(5); regBank.set(30006, (word) AI5); delay(10); slave.run(); } } dakle ovo je osnovni deo koda trenutno. kao sto vidite i kao sto je ocigledno kontroler ATmega328p na arduinu čita sve analogne ulaze i "set-uje" vrednosti 0-1023 u registre od 30001 do 30006. E ja dakle zelim da očitam ds18b20 pomocu biblioteka dalas i onewire i da to spakujem recimo u registar 30007 a na racunaru vidim u nekom zapisu onih 73.5C da lici na ocitanu temperaturu. u inlude i setap bih dodao sve sto je potrebno za taj senzor samo ne znam kako da to pretocim u holding registar. Hvala |