Stap 3: Nrf24L01 (krediet aan http://gizmosnack.blogspot.in/)
De module met nRF24L01 is een ontzagwekkende RF module die werkt op de 2,4 GHz-band en is perfect voor draadloze communicatie in een huis, omdat het zal zelfs dikke betonnen muren doordringen. De nRF24L01 doet al het harde programmering voor u, en heeft zelfs een functie om automatisch te controleren als de toegezonden gegevens wordt ontvangen aan het andere einde. Er zijn een paar verschillende versies van de nRF-familie chips en ze allemaal lijken te werken op een soortgelijke manier. Ik heb bijvoorbeeld gebruikt de nRF905 (433MHz) module met bijna dezelfde code als ik op de nRF24L01 en de nRF24L01 + zonder enige problemen gebruiken. Deze kleine modules heeft een indrukwekkend bereik, met sommige versies die beheert van de mededeling van de 1000 m (vrij zicht) en maar liefst 2000 m met een biquad antenne.
nRF24L01 versus nRF24L01 +
Het (+) versie is de nieuwe, geactualiseerde versie van de chip en ondersteunt gegevenssnelheid van 1 Mbps, 2 Mbps en een "lange afstand-modus" van 250 kbps, hetgeen zeer nuttig is wanneer u wilt uitbreiden van de lengte van de uitzending. De oudere nRF24L01 (die ik heb gebruikt in mijn vorige posts) ondersteunen alleen 1 Mbps of 2 Mbps datasnelheid. Beide modellen zijn compatibel met elkaar, zo lang als ze zijn ingesteld op dezelfde gegevenssnelheid. Sinds ze beide kosten ongeveer hetzelfde (dicht bij niets) zou ik u adviseren om te kopen de + versie!
Deel i - SetupConnection differencesThe nRF24L01 module heeft 10 aansluitingen en de + versie is 8. Het verschil is dat de + versie in plaats van twee 3,3 V en twee GND, hebben zijn grond (de ene met een wit vierkant omheen) en 3,3 V aanbod, naast elkaar. Als veranderende module van een nieuwe + versie naar een oude, ervoor zorgen niet te vergeten de GND-kabel naar de juiste plaats, zal anders het verkorten van uw circuit.
Hier is een foto van de + versie (bovenaanzicht), waar u alle verbindingen met het label kunt zien. De oude versie heeft twee GND verbindingen helemaal boven in plaats van op de down juiste hoek.
Voeding (GND & VCC) de module moet worden aangedreven met 3,3 V en kan niet worden aangedreven door een 5 V voeding! Aangezien het duurt heel weinig huidige gebruik ik een lineaire regelgever te laten vallen van de spanning tot 3,3 V.To dingen een beetje gemakkelijker maken voor ons, de chip aankan 5 V op de i/o-poorten, wat aardig is omdat het zou een pijn om te reguleren beneden alle i/o-kabels van de AVR-chip. Chip inschakelen (CE) Is gebruikt wanneer aan hetzij de gegevens (zender) verzenden of start ontvangen gegevens (ontvanger). De CE-pin is aangesloten op een ongebruikte i/o-poort op de AVR en is ingesteld als uitvoer (instellen beetje naar een in het register van de DDx waarbij x staat voor de poort-brief.) Atmega88: PB1, ATtiny26: PA0, ATtiny85: PB3SPI Chip selecteren (CSN) ook bekend als "Schip Selecteer niet". De CSN-pin is ook aangesloten op eventuele ongebruikte i/o-poort van de AVR en ingesteld op de uitgang. De CSN pin is opgeheven op de allertijden behalve wanneer om een SPI-commando van de AVR naar de nRF.Atmega88: PB2, ATtiny26: PA1, ATtiny85: PB4SPI klok (SCK) Dit is de seriële klok. Het SCK verbindt met het SCK-pin op de AVR. Atmega88: PB5, ATtiny26: PB2, ATtiny85: PB2SPI Master output slaaf input (MOSI of MO) Dit is de data lijn in de SPI-systeem. Als uw AVR-chip SPI-sanitair zoals de Atmega88 ondersteunt, dit verbindt met MOSI op de AVR zo goed en is ingesteld als output. Op de AVR mist die SPI, zoals de ATtiny26 en de ATtiny85 komen ze met USI in plaats daarvan, en het gegevensblad het zegt: "de USI drie-draads-modus is voldoen aan de Serial Peripheral Interface (SPI) modus 0 en 1, butdoes hebben niet de slaaf selecteren (SS) pin functionaliteit. Deze functie kan echter implementedin software indien nodig"de 'SS' refered aan is hetzelfde als"CSN"en na wat onderzoek vond ik deze blog dat hielp me toe te wijzen. Om de USI SPI up en running die ik ontdekte dat ik moest de MOSI-pin van de nRF verbinden met de MISO pin op de AVR en stellen het als uitvoerapparaat. Atmega88: PB3, ATtiny26: PB1, ATtiny85: PB1SPI Master ingang Slave-uitgang (MISO of MI) Dit is de data lijn in de SPI-systeem. Als uw AVR-chip SPI-sanitair zoals de Atmega88 ondersteunt, dit verbindt met MISO op de AVR en deze blijft als input. Als u het werken aan de ATtiny26 en ATtiny85, had mij voor toepassing USI zoals hierboven vermeld. Dit werkte alleen wanneer ik de MISO pin op de nRF op de MOSI-pin op de AVR aangesloten en als ingang instellen en interne pullup inschakelt. Atmega88: PB4, ATtiny26: PB0, ATtiny85: The IRQ PB0Interrupt Request (IRQ) pin is niet nodig, maar een geweldige manier om te weten wanneer iets is er gebeurd met de nRF. u kunt bijvoorbeeld vertellen de nRF stelt instellen de hoge IRQ als een pakket wordt ontvangen, of als een succesvolle gegevensoverdracht is voltooid. Erg handig! Als uw AVR meer dan 8 pinnen en een beschikbare interrupt-pin heeft zou ik zeer je aanraden om dat men het IRQ verbinden en opstelling van een interrupt-aanvraag. Atmega88: PD2, ATtiny26: PB6, ATtiny85:-