• 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);
    }
  • 相关阅读:
    单向链表的创建、输出、插入、删除
    linux文件管理指令
    二叉树的创建与遍历(递归)
    小工具
    排序
    Project Euler Problem (1~10)
    福大软工 · 最终作业
    福大软工 · 第十二次作业
    Beta冲刺 7
    Beta冲刺 6
  • 原文地址:https://www.cnblogs.com/milton/p/8432260.html
Copyright © 2020-2023  润新知