Jump to content
ELFORUM - Forumul electronistilor
Drk_alien

Pic + NRF24L01, cod in mikroC

Recommended Posts

Salutare,

Nu am postat de mult aici fiind ocupat cu alte treburi, ma bucur sa va regasesc si iata problema mea:

Doresc sa imi fac un avion cu telecomanda iar pt transmiter si receiver am decis sa folosesc module NRF24L01. 

In mikroC Pro exista deja o librarie care este special facuta pt acest modul dar eu m-am blocat la configurarea pinilor deoarece exemplul este pt un alt tip de Pic.

Eu voi folosi un Pic18F2580 atat pt transmiter cat si pt receiver.

Partea de cod pe care eu nu o inteleg si la care primesc eroare de compilare este aceasta: ( Syntax Error: 'b' expected,  but 'C5' found )

Eroarea o primesc atunci cand vreau sa inlocuiesc LATC.B7 de pe linia 2 cu LATC.C5 si TRISC.B7 cu TRISC.C5

M-as bucura daca cineva m-ar ajuta cu o explicatie.

sbit Irq_pin   at PORTB.B0; sfr;sbit Mosi_pin  at LATC.B7;  sfr;sbit Ce_pin    at LATA.B4;  sfr;sbit Sclk_pin  at LATA.B3;  sfr;sbit Csn_pin   at LATA.B2;  sfr;sbit Miso_pin  at PORTC.B6; sfr;sbit Irq_tris  at TRISB.B0; sfr;sbit Mosi_tris at TRISC.B7; sfr;sbit Ce_tris   at TRISA.B4; sfr;sbit Sclk_tris at TRISA.B3; sfr;sbit Csn_tris  at TRISA.B2; sfr;sbit Miso_tris at TRISC.B6; sfr;

Ce nu inteleg eu aici este, sa luam de ex linia 2 in care Mosi e configurat cumva in registrul LATC.B7. Asta ce inseamna? B7 de unde vine?...nu ar trebuii sa fie un 'C' ? Trebuie neparat sa ma folosesc de registrul LATC, LATA...etc?

Pt Pic18f2580 am decis sa folosesc pinii asa:

 

RC2 - CE (NRF24L01)

RC1 - CSN (NRF24L01)

RC3 - SCLK (NRF24L01)

RC5 - MOSI (NRF24L01)

RB2 - IRQ (NRF24L01)

RC4 - MISO (NRF24L01)

 

Si de aceea am nevoie sa schimb aceste setari.

 

Sper ca am fost destul de explicit.

Multumesc mult.

 

 

Link to post
Share on other sites

LATB.B0 adica Port B, bit 0. LATC.C0 nu exista pentru ca dupa LATX (X e portul A, B, C...) vine mereu un B.Y (Y = 0 la 7 dupa cati pini ai port).

 

Ai grija cu NRF-ul la avioane, iti trebuie un modul puternic daca vrei sa controlezi avionul departe. Nicidecum modulele de pe eBay la 1-2$.

Si, da, la PIC 18 ai mereu LATX, nu PORTX.

PS: nu am verificat daca exemplul foloseste SPI hard sau soft. Daca e soft, nu conteaza pinii, daca e hard atunci nu va merge decat cu pinii dedicati conectati.

Chiar daca programul va compila corect.

Link to post
Share on other sites

Am reusit sa compilez cu success, mersi de informatie.

Stiu ca nu sunt module puternice dar eu fac asta din pasiune si orice success ma va entuziasma. Eu sunt programator PHP de meserie. Nu prea ma am cu electronica dar sunt ok la programare in C, pornind din scoala cu programarea in C++.

 

Maine am sa fac niste teste sa vad daca se trimit niste date.

Eventual o sa revin cu niste intrebari.

Link to post
Share on other sites

Mai toti suntem din entuziasm pe aici. Spor la treaba.Ar fi interesant ce protocol (codare) folosesti ca sa transmiti semnalul RC la avion.Faci o comunicatie in ambele sensuri sau doar catre avion?Intreb si eu sa vad ce idei mai au ceilalti.PS: Eu ma joc cu barcute.

Edited by thunderer
Link to post
Share on other sites

Aseara mi-am comandat NRF cu antena externa de pe ebay pt un range mai mare. ( folosesc dinalea fara amplificare momentan )

Vor ajunge in cam 1 luna, deci o sa am destul timp sa ma folosesc de astea mai slabute pentru development.

Ideea e ca la un moment dat sa ii montez o camera ( nu stiu inca cum si de ce probleme ma pot lovi ) dar asta am in plan.

Am si un modul giroscop, o sa vad cum ma pot juca cu el mai tarziu ca avionul sa nu depinda in totalitate de telecomanda si de indemanarea mea.

 

Nu am incercat Zigbee, defapt eu nu am mai incercat comunicarea radio intre microcontrollere. :rade: Am facut tot felul de chestii cu dispay Nokia 3310 + tastatura PS2...dar in principiu chestii simple.

Link to post
Share on other sites
Guest bufferzone

Salut Drk_alien,

Ai reusit cumva sa comunici folosind exemplul de mai sus? Eu incerc sa folosesc un PIC18F45K22 si un Arduino Mega si nu reusesc sa citesc nimic in Arduino. Daca cineva are un exemplu pe care l-a folosit cu succes in trimiterea datelor intre PIC si Arduino ve rog mult ajutat-ma si pe mine cu exemplu. Am incercat o multime de exemple existente pe internet insa nu reusesc sa trimit si sa primesc nimic. Folosesc 2 NRF-uri cu antena externa pe care le alimentez de la o sursa de calculator, am pus intre masa si + un condensator de 100nF si tot nimic. Nu stiu ce sa mai incerc sa reusesc sa transmit cativa biti catre arduino.

Multumesc mult pentru ajutor!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines