这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 【樱花舞者】-进程贴

共35条 3/4 1 2 3 4 跳转至
工程师
2012-12-06 15:20:10     打赏
21楼

1.数字I/O:LED   
在线编译的参考程序如下:
#include <rxduino.h>
#define INTERVAL 100
void setup()
{
    pinMode(PIN_LED0,OUTPUT);
    pinMode(PIN_LED1,OUTPUT);
    pinMode(PIN_LED2,OUTPUT);
    pinMode(PIN_LED3,OUTPUT);
}
void loop()
{
    digitalWrite(PIN_LED0, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED1, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED2, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED3, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED0, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED1, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED2, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED3, 0);
    delay(INTERVAL);
}




以上就是开发板的管教分配


工程师
2012-12-07 09:58:34     打赏
22楼
就问问你们还有没有其他的编写软件啊,这个在线的太卡了

工程师
2012-12-07 10:00:39     打赏
23楼

嗯,后续持续跟进


工程师
2012-12-10 16:39:56     打赏
24楼

数字I/O教程二:LED闪烁

LED(发光二极管),能将电能转化为光能,也具有单向导电性,反向击穿电压约为5V。它的正向伏安特性曲线很陡,使用时必须串连限流电阻,在5V的电路中一般使用400欧姆左右的电阻。LED的两根引脚中较长的一根是正极,较短的一根为负极。

程序代码如下:

/*GR-SAKURA Sketch Template Version: V1.02*/
#include <rxduino.h>
#define INTERVAL 300
int ledPin=13;
void setup()
{
  pinMode(ledPin,OUTPUT);
}
void loop()
{
  digitalWrite(ledPin, 1);
  delay(INTERVAL);
  digitalWrite(ledPin, 0);
  delay(INTERVAL);
}

LED闪灯可以有很多的玩法,本实验目的只是在于验证数字I/O的输出,如果有方便的数字示波器的话,可以用示波器观测到一个方波,周期是600msdelayms),delay函数的延时是以毫秒为单位的,这就非常方便时间的定义,用过c51单片机的人都知道,51中要自己定义延时函数,对于准确的定时还要去模拟仿真,所以学到sakura就感觉到了太方便了。






工程师
2012-12-10 19:02:17     打赏
25楼

可以将上述的LED实验中,换成蜂鸣器……



工程师
2012-12-10 19:07:36     打赏
26楼

Arduino教程三: 模拟输入

 

Arduino的优势在于对数字信号的识别和处理,但我们所生活的真实世界并不是数字(digital)化的,简单到只要用0和1就能够表示所有的现象。例如温度这一我们已经司空见惯的概念,它只能在一个范围之内连续变化,而不可能发生像从0到1这样的瞬时跳变,类似这样的物理量被人们称为是模拟(analog)的。Arduino是无法理解这些模拟量的,它们必须在经过模数转换后变成数字量后,才能被Arduino进一步处理。

像温度这样的数据必须先被转换成微处理器能够处理的形式(比如电压),才能被Arduino处理,这一任务通常由各类传感器(sensor)来完成的。例如,电路中的温度传感器能够将温度值转换成0V到5V间的某个电压,比如0.3V、3.27V、4.99V等。由于传感器表达的是模拟信号,它不会像数字信号那样只有简单的高电平和低电平,而有可能是在这两者之间的任何一个数值。至于到底有多少可能的值则取决于模数转换的精度,精度越高能够得到的值就会越多。

Arduino所采用的ATmega8微处理器一其有6个模数转换器(ADC,Analog to Digital Converter),每一个模数转换器的精度都是10bit,也就是说能够读取1024(2^10 = 1024)个状态。在Arduino的每一个模拟输入管脚上,电压的变化范畴是从0V到5V,因此Arduino能够感知到的最小电压变化是4.8毫伏(5/1024 = 4.8mV)。

电位计(potentiometer)是一种最简单的模拟输入设备,它实际上就是一个可变电阻箱,通过控制滑块所在的位置我们可以得到不同的电压值,而输入信号正是从滑块所在的位置接入到电路中的。

这一实验我们将通过改变电位计的值来控制发光二极管闪烁的频率。电位计上一共有三个管脚,分别连接到Arduino的电源、地和模拟输入的5号管脚上,发光二极管则连接到数字I/O的13号管脚上,原理图如下所示:

相应的代码为:

/*GR-SAKURA Sketch Template Version: V1.02*/
#include <rxduino.h>
int ledPin=13;

int potPin=5;

int value=0;
void setup()
{
  pinMode(ledPin,OUTPUT);
}
void loop()
{

value=analogRead(potPin);
  digitalWrite(ledPin, HIGH);
  delay(value);
  digitalWrite(ledPin, LOW);
  delay(value);
}

在Arduino中,对模拟输入端口不需要调用pinMode()函数将其指定为输入或者是输出模式,这点同数字I/O端口是有所不同的。

通过旋转电位计的轴,我们能改变电位计中间那根连线同地之间的电阻量,从而也就能改变从模拟输入的5号管脚上所读入的模拟量的值。当电位计完全旋转到头时,输入到模拟输入管脚上的电压为0V,用analogRead()函数读出的值为0;当电位计完全旋转到另一头时,输入到模拟I/O管脚上的电压为5V,此时用analogRead()函数读出的值为1023;当电位计旋转到中间的某个位置时,输入到模拟输入管脚上的电压是0V到5V之间的某个值,而用analogRead()函数读出的则是位于0到1023之间的某个对应值。读出的模拟量在我们的实验中被用来确定发光二极管点亮和熄灭的时间,以反映模拟量的变化。



工程师
2012-12-15 20:44:31     打赏
27楼

串口输出:Serial

在PC机上上最常见的串行通信协议是RS-232串行协议,而在各种微控制器(单片机)上采用的则是TTL串行协议。由于这两者的电平有很大的不同,因此在实现PC机和微控制器的通信时,必须进行相应的转换。完成RS-232电平和TTL电平之间的转换一般采用专用芯片,如MAX232等。

串行通信的难点在于参数的设置,如波特率、数据位、停止位等,在Arduino语言可以使用Serial.begin()函数来简化这一任务。为了实现数据的发送,Arduino则提供了Serial.print()和Serial.println()两个函数,它们的区别在于后者会在请求发送的数据后面加上换行符,以提高输出结果的可读性。

代码如下:

/*GR-SAKURA Sketch Template Version: V1.02*/
#include <rxduino.h>
void setup()
{
  Serial.begin(9600);    //设置波特率为9600
}
void loop()
{

Serial.println("Hello World");

delay(500);
 }

为了检查串口上是否有数据发送,一个比较简单的办法是在数字I/O端口管脚(TX)和5V电源之间接一个发光二极管,如下面的原理图所示:

 

这样一旦通过串口向PC机发送数据时,相应的发光二极管就会闪烁,实际应用中这是一个非常方便的调试手段.


工程师
2012-12-19 14:55:52     打赏
28楼

目前正在搞定软件的事,之前一直用在线编译一直卡的不行,我先把原理先写好,供大家浏览


工程师
2012-12-19 22:49:33     打赏
29楼
今天又拿到了礼品券,刚好凑齐了5个,看了一本学习Arduino的书籍不错,正好用这些礼品券买了,发个图推荐个要学习的人


工程师
2012-12-20 11:04:36     打赏
30楼

PWM

PWM是什么?“怕玩命”的缩写?呵呵,英文写法是“Pluse-width-modulation”。是占空比不同的方波。


 

 

PWM的作用:

1.通过简单的滤波电路,就可以生成真正的模拟输出量。

2.控制灯光亮度,调节电机转速,不需要滤波就可以实现。

3.控制舵机角度。

4.输出信号,例如接喇叭时可以发出声响。

以上知识简单的几个例子

 

产生PWM的三种方式?

第一种:用analogWritepinval)命令。

第二种:用delayMicroseconds100)、delayMicroseconds1000-100)来调节

第三种:可以用到时钟寄存器

 

以第二种方式,代码如下:

#include <rxduino.h>

int PIN=8;

void setup()

{

    pinMode(PIN,OUTPUT);

}

void loop()

{

    digitalWrite(PIN, 1);

    delay(100);

    digitalWrite(PIN, 0);

    delay(1000-100);

}


共35条 3/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]