标题: arduino小车程序 [打印本页]

作者: shuxin    时间: 2016-11-28 22:57
标题: arduino小车程序
引脚接法:
nRF24L01   Arduino UNO
VCC        <->        3.3V
GND        <->        GND
CE        <->        D9
CSN        <->        D10
MOSI    <->        D11
MISO    <->        D12
SCK        <->        D13
IRQ        <->        不接
*/
#include <SPI.h>                    //24L01库文件
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
int a;
int aa;
int b;
int bb;
int c;
int cc;
int d;
int dd;
void setup()
{
  Mirf.cePin = 9;                    //设置CE引脚为D9
  Mirf.csnPin = 10;                    //设置CEN引脚为D10
  Mirf.spi = &MirfHardwareSpi;      //加载24L01  SPI
  Mirf.init();                      //开始
  Mirf.setTADDR((byte *)"serv2");   //发送到"接收地址"
  Mirf.payload = sizeof(int);       //数据类型(整数)
  Mirf.channel = 3;                 //发送通道,可以填0~128,收发必须一致。
  Mirf.config();                    
  Serial.begin(9600);
}
void loop()
{
  a=analogRead(0);                 //读取电平(0至1023)
  b=analogRead(1);      
  c=analogRead(2);            
  d=analogRead(3);
  delay(10);
Serial.print(a);
Serial.print("   ");
Serial.print(b);
Serial.print("   ");
Serial.print(c);
Serial.print("   ");
Serial.println(d);
a=map(a,0,1023,0,1023) ;
b=map(b,0,1023,1024,2047) ;
c=map(c,0,1023,2048,3071) ;
d=map(d,0,1023,3072,4095) ;
   if (a !=aa)
   {
     Mirf.send((byte *)&a);       //发送X向电平
     while(Mirf.isSending());     //等待或继续发送??
     aa=a;
   }
  if (b !=bb)
  {
     Mirf.send((byte *)&b);       //发送X向电平
     while(Mirf.isSending());     //等待或继续发送??
     bb=b;
  }
  if (c !=cc)
  {
     Mirf.send((byte *)&c);       //发送X向电平
     while(Mirf.isSending());     //等待或继续发送??
     cc=c;
  }
  if (d !=dd)
  {
     Mirf.send((byte *)&d);       //发送X向电平
     while(Mirf.isSending());     //等待或继续发送??
     dd=d;
   }
   delay(10);                     // 等待0.01秒
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1