【DFRobot Bluno试用体验】驱动小电机

  • 马超飞燕
  • LV5工程师
  • |      2015-10-17 11:05:56
  • 浏览量 731
  • 回复:0



【DFRobot Bluno试用体验】驱动小电机



准备工具:电脑;DFRobot Bluno开发板;云智易开发板;USB线两根根;杜邦线两根


实验简介:电机转速随光电传感器ST188检测值变化。


部分原理图:


【DFRobot Bluno试用体验】驱动小电机【DFRobot Bluno试用体验】驱动小电机


硬件连线图:


【DFRobot Bluno试用体验】驱动小电机


程序代码:



// the setup routine runs once when you press reset:

const int IA = 5;

void setup() {

  

  pinMode(IA, OUTPUT); 



}



// the loop routine runs over and over again forever:

void loop() {

 

  int sensorValue = analogRead(A0);

  sensorValue = map(sensorValue, 0, 1023, 0, 255);

  analogWrite(IA,sensorValue );

}


用到函数详解:


analogRead()

int analogRead (uint8_t pin)  
读模拟引脚

读模拟引脚, 返回之间的值. 每读一次需要花1微妙的时间.

参数:

pin 引脚编号
返回:

0到1023之间的值
例子:

int analogPin = 3;     // potentiometer wiper (middle terminal) 

connected to analog pin 3
                       // outside leads to ground and +5V
int val = 0;           // variable to store the value read

void setup()
{
  Serial.begin(9600);          //  setup serial
}

void loop()
{
  val = analogRead(analogPin);    // read the input pin
  Serial.println(val);             // debug value
}




analogWrite()

void analogWrite (uint8_t pin, int value)    
写模拟引脚 
参数:

pin 引脚编号
value 0到255之间的值, 0对应off, 255对应on
写一个模拟值(PWM)到引脚. 可以用来控制LED的亮度, 或者控制电机的转速. 在执

行该操作后, 应该等待一定时间后才能对该引脚进行下一次的读或写操作. PWM的频

率大约为490Hz.

在一些基于ATmega168的新的Arduino控制板(如Mini 和BT)中, 该函数支持以下引脚

: 3, 5, 6, 9, 10, 11. 在基于ATmega8的型号中支持9, 10, 11引脚.

例子:

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value

void setup()
{
  pinMode(ledPin, OUTPUT);   // sets the pin as output
}

void loop()
{
  val = analogRead(analogPin);   // read the input pin
  analogWrite(ledPin, val / 4);  // analogRead values go from 0 to 

1023, analogWrite values from 0 to 255
}


map()

long map  ( long  x,  
  long  in_min,  
  long  in_max,  
  long  out_min,  
  long  out_max   
 )    
等比映射 

将位于之间的x映射到.


参数:

x 要映射的值
in_min 映射前区间
in_max 映射前区间
out_min 映射后区间
out_max 映射后区间
例如下面的代码中用 map 将模拟量从映射到区间:

// Map an analog value to 8 bits (0 to 255)
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + 

out_min;
}


下载效果:

【DFRobot Bluno试用体验】驱动小电机




视频连接:http://v.youku.com/v_show/id_XMTM2MTgwOTU4MA==.html





  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子