|
之前發(fā)的24L01 控制LED燈明暗,弄好了
可以增加用 map 更改數(shù)字范圍實(shí)現(xiàn)更多通道
在arduino1.01 編譯通過,10米內(nèi)沒壓力,(注:通道多了,會(huì)有延時(shí))
-------------------------發(fā)送端--------------------------------
- //MISO -> D12
- // * MOSI ->D11
- // * SCK ->D13
-
- //* CE ->D8
- //* CSN ->D7
-
- #include "SPI.h" //24L01庫(kù)文件
- #include "Mirf.h"
- #include "nRF24L01.h"
- #include "MirfHardwareSpiDriver.h"
-
- int aaa;
- int aaaa;
- int bbb;
- int bbbb;
-
- void setup(){
- Mirf.spi = &MirfHardwareSpi; //加載24L01 SPI
- Mirf.init(); //開始
- Mirf.setTADDR((byte *)"serv1");//發(fā)送到"接收地址"
- Mirf.payload = sizeof(int); //數(shù)據(jù)類型(整數(shù))
- Mirf.config(); //發(fā)送通道??
- }
- void loop(){
- aaa=analogRead(A4)+1; //讀取 X 向電平PWM(1至1024)
- bbb= -analogRead(A5)-1; //讀取 Y向電平PWM(-1至-1024)
- if (aaa !=aaaa) //如果 X 向電平與之前電平不一樣則執(zhí)行
- {
- Mirf.send((byte *)&aaa); //發(fā)送X向電平
- aaaa=aaa; //保存X 向當(dāng)前電平
- while(Mirf.isSending()){ //等待或繼續(xù)發(fā)送??
- }
- }
- if (bbb !=bbbb) //如果 Y 向電平與之前電平不一樣則執(zhí)行
- {
- Mirf.send((byte *)&bbb); //發(fā)送Y向電平
- bbbb=bbb; //保存Y 向當(dāng)前電平
- while(Mirf.isSending()){ //等待或繼續(xù)發(fā)送?
- }
- }
- delay(10); // 等待0.01秒
- }
復(fù)制代碼
---------------------接收端--------------------------------
- //MISO -> D12
- // * MOSI ->D11
- // * SCK ->D13
-
- //* CE ->D8
- //* CSN ->D7
- //LCD 1602 IIC SDA---A4 328
- //LCD 1602 IIC SCL---A5 328
-
-
- #include "Wire.h" //LCD1602 IIC 庫(kù)文件
- #include ;
- LiquidCrystal_I2C lcd(0x27,16,2);
-
- #include "SPI.h" //24L01庫(kù)文件
- #include "Mirf.h"
- #include "nRF24L01.h"
- #include "MirfHardwareSpiDriver.h"
-
- int data;
- int aaa;
- int bbb;
-
- void setup(){
- lcd.init(); //加載LCD1602 IIC
- lcd.backlight();
- //lcd.setBacklight(120); //設(shè)置LCD背光亮度,好象沒作用
- delay(20);
- Mirf.spi = &MirfHardwareSpi; //加載24L01 SPI
- Mirf.init();
- Mirf.setRADDR((byte *)"serv1"); //接收地址" "
- Mirf.payload = sizeof(int); //數(shù)據(jù)類型(整數(shù))
- Mirf.config();
- }
-
- void loop(){
-
- if(Mirf.dataReady()){ //如果接收到數(shù)據(jù)則執(zhí)行
-
- Mirf.getData((byte *)&data); //接收數(shù)據(jù)
-
- if (data>=1) //如果大于或等于1為X向 (如果設(shè)為 >=0就會(huì) X,Y通道沖突,所以設(shè)為1開始)
- {
- aaa=data-1;
- }
- if (data<=-1) //如果小于或等于-1為Y向(............)
- {
- bbb=data+1;
- }
-
- Mirf.rxFifoEmpty(); //清理24L01援存??
- }
- lcd.clear(); //清屏
- lcd.setCursor(0, 0);
- lcd.print(aaa); //顯示X向 1至1024
- lcd.setCursor(6, 0);
- lcd.print(0-bbb); //顯示Y向,并將負(fù)數(shù)變?yōu)檎龜?shù) 1至1024
- delay(10);
- }
復(fù)制代碼 Mirf.payload = sizeof(int); //數(shù)據(jù)類型(整數(shù))
if(Mirf.dataReady()){
應(yīng)該指的是 從機(jī)接收到 主機(jī)發(fā)來的任何信號(hào) 就開始執(zhí)行下面語句吧
之前定義類型為整數(shù),所以每收到一條整數(shù)就開始 .因?yàn)橐焖夙憫?yīng)~
24L01 .zip
(16.64 KB, 下載次數(shù): 35)
2016-4-10 03:00 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|