Ubuntu16.04 Arduino UNO R3开发板

使用的是国内改过的版本, usb芯片换成了ch341, 晶振不是原版的16MHz而是12MHz, 杜邦线孔布局和原版一致.

 

设备连接

在Ubuntu16.04下不需要驱动, 能直接认出ch341设备

$ lsmod
Module                  Size  Used by
ch341                  16384  0
usbserial              45056  1 ch341

$ dmesg
...
[16219.440832] usb 2-1.2: new full-speed USB device number 3 using ehci-pci
[16219.550581] usb 2-1.2: New USB device found, idVendor=1a86, idProduct=7523
[16219.550589] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[16219.550603] usb 2-1.2: Product: USB2.0-Serial
[16220.585604] usbcore: registered new interface driver usbserial
[16220.585633] usbcore: registered new interface driver usbserial_generic
[16220.585651] usbserial: USB Serial support registered for generic
[16220.588829] usbcore: registered new interface driver ch341
[16220.588951] usbserial: USB Serial support registered for ch341-uart
[16220.588973] ch341 2-1.2:1.0: ch341-uart converter detected
[16220.590330] usb 2-1.2: ch341-uart converter now attached to ttyUSB0

 

开发环境

Arduino下载 https://www.arduino.cc/en/Main/Software Linux 64bit版本 https://downloads.arduino.cc/arduino-1.8.5-linux64.tar.xz

1. 安装: 解压后移动到/opt目录下, 然后sudo ./install.sh 会自动创建应用程序图表

2. 运行Arduino IDE. 在Tools / Board 下选择 Arduino/Genuino UNO, 在Port下选择端口. IDE右下角看到“Arduino XXXX on /dev/XXXX”, 分别指示了当前指定的设备类型和连接的端口. 类型和端口不能选错, 否则无法写入设备.

3. 写入测试代码

void setup() {
  Serial.begin(9600);

}

void loop() {
  Serial.println("Hello World");
  delay(1000);
}

4. 点击左上角的Verify图标检查, 通过后点击右箭头Upload图标上载到开发板
 如果出现 avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied 错误, 则检查一下/dev/ttyUSB0所属的用户组, 将当前用户加入用户组, 执行完后要退出当前登录用户, 再次登录后才有效

$ ll /dev/tty*
crw-rw---- 1 root dialout   4, 73 Feb  8 11:05 /dev/ttyS9
crw-rw---- 1 root dialout 188,  0 Feb  8 16:50 /dev/ttyUSB0

$ sudo usermod -a -G dialout 当前用户名

5. 打开 Tools / Serial Monitor 查看从开发板发来的串口消息, 如果上述步骤正常的话, 就能每隔一秒收到一条"Hello World"数据

开发板LED闪灯测试

开发板自带的发光LED在第13脚, 可以通过以下代码让LED以半秒的间隔亮和灭

int ledPin = 13;
int ledMode = HIGH;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // LED
  if (ledMode == HIGH) {
    ledMode = LOW;
  } else {
    ledMode = HIGH;
  }
  delay(500);
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值