Arduino a bezdratove moduly 433Mhz

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#16 Příspěvek od jiri255 »

jo a když jsem zkusil pevně definovat data

    Zaveď si pevnou proměnnou "data" třeba
    float data = 23.50;


tak mi to hlásí tuto chybu při pokusu program nahrát

"cannot convert 'float' to 'byte*' for argument '1' to 'void lwtx_send(byte*)'
Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 00:00

#17 Příspěvek od frpr666 »

na vysílací straně si pro odladění dej:
...
if (lwtx_free())
{
for ( i = 0; i < 9; i++)
{
Serial.print(data[i], HEX);
}
lwtx_send(data);
...
na přijmací straně, bych vyhodil to delay(10000)
a vyčítání bych udělal podle příkladu, který je uveden ke knihovně.

Je třeba si uvědomit, že přijmač není nijak časově synchronizován s vysílačem.
Tj. pokud vysílač posílá zprávu např. "abcde" každých 5 sekud a na přijmači čteš buffer v pevném intervalu 10s, tak v bufferu můžou být různé kombinace přijatých zpráv, např.
"abcdeabcde", "bcdeabcdea","cdeabcdeab" atd..
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#18 Příspěvek od Cowley »

 jeste koukam ze v programu pro prijimac nejak v radku nize vypadnul "&":
lwrx_getmessage(data,&delka);
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#19 Příspěvek od Cowley »

jiri255 píše:...jen oni pracujou s tlačítkama a já potřebuju teplotu...


A ten priklad podle tutorialu, poslat radu cislic 0-9 nebo zapojeni treba s tema tlacitkama, Ti funguje? Nekde se zacit musi :)
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#20 Příspěvek od Cowley »

jiri255 píše:...jo a když jsem zkusil pevně definovat data...


Kdybys ten prispevek cetl poradne, dole jsem to s omluvou Editoval :)
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#21 Příspěvek od jiri255 »

to "&": tam být nemůže, když ho tam dám program se mi nenahraje
a hlásí chybu
lwrx_getmessage(data,&delka);
proto to mám bez toho:
lwrx_getmessage(data,delka);
jinde jsem našel, že to tam nebylo, tak nevím jak zásadní to
je pro funkci toho programu?

Jinak, když jsem tam nahrál to co je v tom tutorialu, tak mi to chodilo
vysílač posílal 1 až 9 a přijímač to zobrazoval, ale s teplotou mi to nefunguje
:-(
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#22 Příspěvek od Cowley »

Tak to zkus s jinou knihovnou, treba odtud

Koukal jsem, ze podle tveho prispevku a jeho nove knihovny to hodne lidem nechodi a puvodni uz nikde neni k mani.

Napisu si Jeziskovi, at mi taky jeden par modulu prinese. :)
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#23 Příspěvek od jiri255 »

zkusil jsem tu knihovnu virtualwire a ty programy co jsou v examples ten transmitter a receiver, ale to nefunguje vubec :-( v tech programech to hlasi jednu chybu za druhou a nejde to nahrat, takze nemam co odzkouset...
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#24 Příspěvek od jiri255 »

našel jsem tuto virtualwire knihovnu a je funkční
[url]
https://www.pjrc.com/teensy/td_libs_VirtualWire.html
[/url]
programy co jsou tam uvedené žádnou chybu už nehlásí,
ale není mi tam jasné to zapojení do těch pinů,
každý program má pin 6,12,11,3 a ten druhý 11,12,2,3
ale přijímač i vysílač mají jen po jednom
výstupu, tak nevím kam to mám teda vlastně co zapojit?
Protože na přijímači se mi v serialu zobrazí jen "setup"
a dál nic a do vysílače jsem si doplnil

Kód: Vybrat vše

Serial.println(msg);

a to vypadá, že posílá pořád dokola "hello -i", tak to asi
funguje a něco to posílá, ale přijímač to nezobrazí :-(
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#25 Příspěvek od Cowley »

Je to vzdy v poradi pro Ledku, vysilani, prijimani, ovladani.
Takze u vysilace to bude vystup pro Transmit, u prijimace to bude Receive.
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#26 Příspěvek od jiri255 »

a který pin použít u vysílače ten 12 nebo 3:
transmit_pin = 12;
nebo
transmit_en_pin = 3;

a u přijímače je to tedy jen ten pin 11
const int receive_pin = 11;
a ty osatní piny se tedy nezapojují ani nijak nepropojují
potom nějak úplně nechápu proč tam jsou?
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#27 Příspěvek od Cowley »

_en je pro ovladani, vstup cele zarizeni vysilace aktivuje-povoluje, anglicky enable. Musi tam byt uvedene vsechny, vysilac i prijmac ma jednu spolecnou knihovnu a ta ty hodnoty vyzaduje, i kdyz v danem programu neni vubec treba dal vyuzita.

Jinak mas na te strance vysvetleni ke vsem prikazum ;)
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#28 Příspěvek od jiri255 »

tak už mi to asi jede vysílač jsem připojil na pin 12 UNO a přijímač mám na pin 11 MEGA a teď přijímač přijímá následující: (je to kopie ze serialu)

Kód: Vybrat vše

setup
Got: 68 65 6C 6C 6F 20 1
Got: 68 65 6C 6C 6F 20 2
Got: 68 65 6C 6C 6F 20 3
Got: 68 65 6C 6C 6F 20 4
Got: 68 65 6C 6C 6F 20 5
Got: 68 65 6C 6C 6F 20 6
Got: 68 65 6C 6C 6F 20 7
Got: 68 65 6C 6C 6F 20 8
Got: 68 65 6C 6C 6F 20 9
Got: 68 65 6C 6C 6F 20 A
Got: 68 65 6C 6C 6F 20 B
Got: 68 65 6C 6C 6F 20 C
Got: 68 65 6C 6C 6F 20 D
Got: 68 65 6C 6C 6F 20 E
Got: 68 65 6C 6C 6F 20 F
Got: 68 65 6C 6C 6F 20 10
Got: 68 65 6C 6C 6F 20 11
Got: 68 65 6C 6C 6F 20 12
Got: 68 65 6C 6C 6F 20 13
Got: 68 65 6C 6C 6F 20 14
Got: 68 65 6C 6C 6F 20 15
Got: 68 65 6C 6C 6F 20 16
Got: 68 65 6C 6C 6F 20 17
Got: 68 65 6C 6C 6F 20 18
Got: 68 65 6C 6C 6F 20 19
Got: 68 65 6C 6C 6F 20 1A
Got: 68 65 6C 6C 6F 20 1B
Got: 68 65 6C 6C 6F 20 1C
Got: 68 65 6C 6C 6F 20 1D
Got: 68 65 6C 6C 6F 20 1E
Got: 68 65 6C 6C 6F 20 1F
Got: 68 65 6C 6C 6F 20 20
Got: 68 65 6C 6C 6F 20 21
Got: 68 65 6C 6C 6F 20 22
Got: 68 65 6C 6C 6F 20 23
Got: 68 65 6C 6C 6F 20 24
Got: 68 65 6C 6C 6F 20 25
Got: 68 65 6C 6C 6F 20 26
Got: 68 65 6C 6C 6F 20 27
Got: 68 65 6C 6C 6F 20 28
Got: 68 65 6C 6C 6F 20 29
Got: 68 65 6C 6C 6F 20 2A
Got: 68 65 6C 6C 6F 20 2B


což je super, ale moc to nepřipomíná to vysílané "hello"
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#29 Příspěvek od Cowley »

A znas ASCII tabulku? Tak koukni jak je hello a mezera zastoupena v HEX, kdyz mas po prijmu v programu prijimace nechat vytisknout zachycene znaky v HEX :)

Povazuj to za velky pokrok...

A posledni bunka [6] je plnena parametrem count od jednicky po pauze delay vzdy s dalsim vyslanim o jednicku vetsi.

Proto je i videt, ze se "fakt neco deje tzn. vysila i prijima" Gratuluji :)
Naposledy upravil(a) Cowley dne 05 pro 2015, 20:59, celkem upraveno 1 x.
Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 00:00

#30 Příspěvek od jiri255 »

:-) aha to mě hned nenapadlo... je to hello mezera a ty znaky,
tak ano to je skutečně pokrok jenže, jak tímhle způsobem odeslat
tu teplotu 23.50 a když ještě i pošlu třeba text teplomer1,
tak jak s toho na přijímači udělám "teplomer1 - 23.50" :-(
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“