1回答

1收藏

[原创] 【Curie Nano】基础学习

DFROBOT DFROBOT 3772 人阅读 | 1 人回复 | 2017-05-14

本帖最后由 9robot 于 2017-5-14 10:50 编辑

拿到Curie nano也有段时间了,一直没发帖子,先发一个,后续再更新一下。我的学习过程基本上是依据arduino IDE自带的例子来学习的。
一、开发环境的建立
在活动还没开始时,管理员就已经在论坛里贴出了Curie Nano的开发环境的教程,不在赘述,相对还是比较简单的。就是需要有点耐心,我在网络状况良好的情况下,重复了大概五次吧,才安装成功。

二、IO的使用
学单片机时,习惯了称呼引脚为GPIO,但是看大家都不会这么称呼arduino 的引脚。


Curie Nano的IO资源如下,虽然和单片机比,在数量上不具有优势,但是对于一般的应用还是够用的。
  • 数字IO口:15个(包含4个PWM引脚D3,D5,D6,D9)
  • 模拟IO输入:6个
  • IO口直流驱动能力:2mA-8mA

拿到板子建立好工程后,第一步是点灯,例子里面有blink程序,打开后,编译下载到Curie Nano中,在过5秒后可以看到板子上的绿色LED每个500毫秒的间隔闪烁。
  1. // the setup function runs once when you press reset or power the board
  2. void setup() {
  3.   // initialize digital pin LED_BUILTIN as an output.
  4.   pinMode(LED_BUILTIN, OUTPUT);
  5. }

  6. // the loop function runs over and over again forever
  7. void loop() {
  8.   digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  9.   delay(1000);                       // wait for a second
  10.   digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  11.   delay(1000);                       // wait for a second
  12. }
复制代码
这里面用到两个和IO有关的函数,pinMode(LED_BUILTIN, OUTPUT)、digitalWrite(LED_BUILTIN, HIGH),

pinMode(LED_BUILTIN, OUTPUT)函数用于设定IO的工作模式,第一个参数选择端口,如写9,则是对D9进行设定,第二个参数则是工作模式,有三种工作模式
INPUT 输入模式
OUTPUT 输出模式
INPUT_PULLUP 输入上拉模式

digitalWrite(LED_BUILTIN, HIGH)函数用于对引脚的电平进行控制,LED_BUILTIN实际是D13,该函数将D13的点评设置为高,实际也可以将HIGH替换为1。

如果想要使用按键,则可以将IO设置为输入模式,采用digitalRead(2)函数读取D2引脚上的电平,返回值为0或1,代表低电平和高电平,下面函数完成的对D2的电平高低的读取。
  1. int pushButton = 2;

  2. // the setup routine runs once when you press reset:
  3. void setup() {
  4.   // initialize serial communication at 9600 bits per second:
  5.   Serial.begin(9600);
  6.   // make the pushbutton's pin an input:
  7.   pinMode(pushButton, INPUT);
  8. }

  9. // the loop routine runs over and over again forever:
  10. void loop() {
  11.   // read the input pin:
  12.   int buttonState = digitalRead(pushButton);
  13.   // print out the state of the button:
  14.   Serial.println(buttonState);
  15.   delay(1);        // delay in between reads for stability
  16. }
复制代码
Curie Nano自带了6个模拟端口,10位ADC,但电压不能超过3.3V,在使用模拟端口时,不需要进行初始化设置,直接使用analogRead(A0)函数即可,返回一个值,这个值除以1023乘以3.3就是端口上对应的电压。
  1. // the setup routine runs once when you press reset:
  2. void setup() {
  3.   // initialize serial communication at 9600 bits per second:
  4.   Serial.begin(9600);
  5. }

  6. // the loop routine runs over and over again forever:
  7. void loop() {
  8.   // read the input on analog pin 0:
  9.   int sensorValue = analogRead(A0);
  10.   // print out the value you read:
  11.   Serial.println(sensorValue);
  12.   delay(1);        // delay in between reads for stability
  13. }
复制代码
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

jwdxu2009

发表于 2017-5-14 11:52:57 | 只看该作者

下载下来,参考学习
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条