精华内容
下载资源
问答
  • arduino学习

    2017-07-03 15:20:31
    [1] 基于proteus仿真的arduino学习  [2] github上有哪些机器人、无人机、自动控制等方面的有趣项目
    展开全文
  • Arduino 学习

    2019-09-25 21:56:53
    Arduino 背景可以参考官方网站www.arduino.cc 先看一个最简单的示例程序: 打开 Arduino IDE , 选择菜单:文件 -> 示例 -> 01.Basics -> Blink /* Blink Turns on an LED on for one second, ...

    Arduino 背景可以参考官方网站 www.arduino.cc

     

    先看一个最简单的示例程序:

    打开 Arduino IDE , 选择菜单:文件 -> 示例 -> 01.Basics -> Blink

    /*
      Blink
      Turns on an LED on for one second, then off for one second, repeatedly.
     
      This example code is in the public domain.
     */
     
    // Pin 13 has an LED connected on most Arduino boards.
    // give it a name:
    int led = 13;
    
    // the setup routine runs once when you press reset:
    void setup() {                
      // initialize the digital pin as an output.
      pinMode(led, OUTPUT);     
    }
    
    // the loop routine runs over and over again forever:
    void loop() {
      digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);               // wait for a second
      digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);               // wait for a second
    }
    

      

    程序主体很简单,提供了 setup() 和 loop() 二个函数。

    setup 函数做一些初始化的工作,在系统上电或复位后,此函数只会执行一次。

    loop 函数会在 setup 之后一直循环运行。

     

    在了解功能之后,我们可能对背后的机制很感兴趣,那么我们可以到安装目录下打开代码文件:C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\main.cpp  代码如下:

     

    #include <Arduino.h>
    
    int main(void)
    {
    	init();
    
    #if defined(USBCON)
    	USBDevice.attach();
    #endif
    	
    	setup();
        
    	for (;;) {
    		loop();
    		if (serialEventRun) serialEventRun();
    	}
            
    	return 0;
    }
    

     

    相信您看到了这段代码,就该知道 setup 和 loop 函数的前世今生了吧。在 loop 函数运行之后,我们还会看到 serialEventRun 的函数,此函数的功能是当串口有数据过来的时候,它可以调用Arduino的另一个函数 serialEvent。

    打开 Arduino IDE , 选择菜单:文件 -> 示例 -> 04.Communication -> SerialEvent 具体看下面的代码:

     

     

    /*
      Serial Event example
     
     When new serial data arrives, this sketch adds it to a String.
     When a newline is received, the loop prints the string and 
     clears it.
     
     A good test for this is to try it with a GPS receiver 
     that sends out NMEA 0183 sentences. 
     
     Created 9 May 2011
     by Tom Igoe
     
     This example code is in the public domain.
     
     http://www.arduino.cc/en/Tutorial/SerialEvent
     
     */
    
    String inputString = "";         // a string to hold incoming data
    boolean stringComplete = false;  // whether the string is complete
    
    void setup() {
      // initialize serial:
      Serial.begin(9600);
      // reserve 200 bytes for the inputString:
      inputString.reserve(200);
    }
    
    void loop() {
      // print the string when a newline arrives:
      if (stringComplete) {
        Serial.println(inputString); 
        // clear the string:
        inputString = "";
        stringComplete = false;
      }
    }
    
    /*
      SerialEvent occurs whenever a new data comes in the
     hardware serial RX.  This routine is run between each
     time loop() runs, so using delay inside loop can delay
     response.  Multiple bytes of data may be available.
     */
    void serialEvent() {
      while (Serial.available()) {
        // get the new byte:
        char inChar = (char)Serial.read(); 
        // add it to the inputString:
        inputString += inChar;
        // if the incoming character is a newline, set a flag
        // so the main loop can do something about it:
        if (inChar == '\n') {
          stringComplete = true;
        } 
      }
    }
    

     

    此代码的功能是:系统上电后,接收串口的输入数据并发送回去,类似 echo。系统的实现是通过在主循环判断全局变量 stringComplete 的状态来决定是否发送接收到的数据。而 stringComplete 的状态是在 serialEvent 这个函数里赋值的。根据 serialEvent 函数注释看,此函数的调用是在每次 loop 函数运行之后才执行的。再回到我们之前的代码:

    for (;;) {
    		loop();
    		if (serialEventRun) serialEventRun();
    	}
    

    通过上面的代码,可以很明确的看出 serialEventRun 函数是在 loop 函数之后执行的。如果我们有多个串口,比如 2560 的板子提供了4个串口,那么 serialEventRun 函数又是如何处理的呢,我们打开代码文件:C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\HardwareSerial.cpp 找到 serialEventRun 函数的实现,代码如下:

     

    void serialEventRun(void)
    {
    #ifdef serialEvent_implemented
      if (Serial.available()) serialEvent();
    #endif
    #ifdef serialEvent1_implemented
      if (Serial1.available()) serialEvent1();
    #endif
    #ifdef serialEvent2_implemented
      if (Serial2.available()) serialEvent2();
    #endif
    #ifdef serialEvent3_implemented
      if (Serial3.available()) serialEvent3();
    #endif
    }
    

     

    serialEventRun 的函数体中是依次的调用 serialEvent() serialEvent1() serialEvent2() serialEvent3() 函数的。如果您的应用需要通过多个串口读写数据,那么在使用 serialEvent 函数的过程中,就要考虑接受的数据长度以及函数的处理时间,否则极有可能会导致其它串口的接收缓冲区满而影响应用。

     

    **** 看门狗 (测试卡死了 bootloader) 请谨慎操作 ****

    最新的 Arduino 1.5.6-r2 烧写的bootloader 已经支持看门狗了。

    重新烧写mega2560的bootloader 烧写完之后 用usb直接编译下载 已经可以支持avr的这个wdt.h了,不用再像之前那样非得用ISP下载程序了。

    使用代码如下:

     

    /*------ avr看门狗测试 -----*/
     
    #include <avr/wdt.h> 
    void setup()
    {
       pinMode(13,OUTPUT);
       wdt_enable(WDTO_4S); //开启看门狗,并设置溢出时间为4秒
       digitalWrite(13,HIGH);
       delay(100);
       digitalWrite(13,LOW);
       delay(100);
       digitalWrite(13,HIGH);
       delay(100);
       digitalWrite(13,LOW);
       delay(100);
    }
     
    void loop()
    {
       digitalWrite(13,HIGH);
       delay(600);
       digitalWrite(13,LOW);
       delay(600);
       //wdt_reset(); //喂狗操作,使看门狗定时器复位
    }
    

    溢出时间如下:

    序号
    常量
    定义
    1
    WDTO_15MS
    看门狗定时器15ms超时
    2
    WDTO_30MS
    看门狗定时器30ms超时
    3
    WDTO_60MS
    看门狗定时器60ms超时
    4
    WDTO_120MS
    看门狗定时器120ms超时
    5
    WDTO_250MS
    看门狗定时器250ms超时
    6
    WDTO_500MS
    看门狗定时器500ms超时
    7
    WDTO_1S
    看门狗定时器1S超时
    8
    WDTO_2S
    看门狗定时器2S超时
    9
    WDTO_4S
    看门狗定时器4S超时
    10
    WDTO_8S
    看门狗定时器8S超时

      

     

     

    Arduino Ethernet Shield MEGA hack

    http://mcukits.com/2009/04/06/arduino-ethernet-shield-mega-hack/

     

    or

    pinMode(11,INPUT);
    pinMode(12,INPUT);
    pinMode(13,INPUT);
    

     

    转载于:https://www.cnblogs.com/bruceleeliya/p/3566256.html

    展开全文
  • arduino学习笔记(最全面的arduino学习笔记)
  • Arduino学习心得

    2020-07-17 14:42:00
    本文为个人的Arduino学习心得。
  • 这本Arduino学习笔记(语言基础)对于刚学习Arduino的朋友有着极大的帮助,可以让你刚快速的上手Arduino,
  • Arduino学习笔记① 初识Arduino

    千次阅读 2019-06-20 09:01:36
    因此,博主决定加入一个Arduino学习笔记,方便零基础的初学者。初学者可以从基础去了解Arduino,这样才能设计自己的东西,所以博主建议初学者可以参考《ARDUINO程序设计基础》,《Arduino-语法手册》,请点击 传输门...

    1.前言

        近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino。但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么。因此,博主决定加入一个Arduino学习笔记,方便零基础的初学者。初学者可以从基础去了解Arduino,这样才能设计自己的东西,所以博主建议初学者可以参考《ARDUINO程序设计基础》,《Arduino-语法手册》,请点击 传输门 提取码:0923。

    注意:

    • 博主建议边学边练,巩固知识

    2.什么是Arduino

        Arduino可以是一块小小电路板,也可以是一个开放的电子开发平台。它既包含了硬件,也包含了软件——开发环境以及开发者、使用者创造出来的代码、程序。Arduino抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存器设置(如果是单片机开发,是需要了解寄存器并且设置各个寄存器),也不需要过多的电子知识和编程知识,开发者只需要通过简单学习,了解各个引脚和函数的作用,便可利用它开发出各种出色的项目。
        Arduino编译器使用GCC,Arduino语音衍生自Wiring语言,这是一个开源的单片机编程架构,同时Arduino语言又是基于AVR-Libc这个AVR单片机扩展库编写的,意味着很多单片机的寄存器设置细节应该是被二次封装了。

    3.选择一款适合自己的Arduino控制器

    3.1 Arduino UNO

        Arduino UNO 是目前使用最广泛的Arduino控制器,具有Arduino的所有功能,是初学者最佳选择。掌握UNO开发技巧,其他型号控制器也是类似的。

    image

    image

    • 处理器 ATmega328
    • 工作电压 5V
    • 输入电压(推荐) 7-12V
    • 输入电压(范围) 6-20V
    • 数字IO脚 14 (其中6路作为PWM输出)
    • 模拟输入脚 6
    • IO脚直流电流 40 mA
    • 3.3V脚直流电流 50 mA
    • Flash Memory 32 KB (ATmega328,其中0.5 KB 用于 bootloader)
    • SRAM 2 KB (ATmega328)
    • EEPROM 1 KB (ATmega328)
    • 工作时钟 16 MHz

    3.2 Arduino MEGA

        Arduino Mega 是一个增强型的Arduino 控制器,相对于UNO,它提供了更多的输入/输出接口,可以控制更多的设备,以及拥有更大的程序空间和内存,是完成较大型项目的较好选择。

    image

    image

    • 控制器 ATmega2560
    • 工作电压 5V
    • 输入电压(推荐) 7-12V
    • 输入电压(限制) 6-20V
    • 数字I/0口 54 (含15路PWM输出)
    • 模拟输入口 16
    • 每个I/0口直流电流 40 mA
    • 3.3v口直流电流 50 mA
    • 闪存(Flash Memory) 256 KB(其中8 KB用作bootloader)
    • 静态存储器(SRAM) 8 KB
    • EEPROM 4 KB
    • 时钟 16 MHz

    3.3 Arduino Leonardo

        Arduino Leonardo 使用集成了USB功能的AVR单片机作为主控芯片,具备其他型号Arduino控制器的所有功能之外还可以轻松模拟USB键盘/鼠标等USB设备。
    image

    image

    • 微控制器 ATmega32u4
    • 工作电压 5V
    • 输入电压(推荐) 7-12V
    • 输入电压(限制) 6-20V
    • 数字I/O引脚 20
    • PWM通道 7
    • 模拟输入通道 12
    • 每个I/O直流输出能力 40毫安
    • 3.3V端口输出能力 50毫安
    • Flash 32 KB(ATmega32u4)其中4 KB由引导程序使用
    • SRAM 2.5 KB(ATmega32u4)
    • EEPROM 1 KB(ATmega32u4)
    • 时钟速度 16MHz

    3.4 Arduino Due

        Arduino Due 突破性使用了32位的ARM Cortex-M3作为主控芯片。它集成了多种外设,有着其他Arduino板无法比拟的性能,是目前最为强大的Arduino控制器。

    image

    • 微控制器 AT91SAM3X8E
    • 工作电压 Voltage 3.3V
    • 输入电压(推荐) 7-12V
    • 输入电压(限制) 6-20V
    • 数字I/O引脚 54 (其中12路PWM输出)
    • 模拟输入通道 Pins 12
    • 模拟输出通道 Pins 2 (DAC)
    • IO口总输出电流 130 mA
    • 3.3V端口输出能力 800 mA
    • 5V端口输出能力 800 mA
    • Flash 512 KB (所有空间都可以储存用户程序)
    • SRAM 96 KB (两个部分: 64KB and 32KB)
    • 时钟速率 84 MHz

    3.5 小型化的Arduino

        常见小型Arduino控制器有Arduino Nano,Arduino Mini,Arduino Micro,Arduino LilyPad等。

    3.5.1 Arduino Nano

        Arduino Nano是Arduino USB接口的微型版本,最大的不同是没有电源插座以及USB接口是Mini-B型插座。

    image

    image

    • 处理器 ATmega168 or ATmega328
    • 工作电压 5V
    • 输入电压(推荐) 7-12V
    • 输入电压(范围) 6-20V
    • 数字IO脚 14 (其中6路作为PWM输出)
    • 模拟输入脚 6
    • IO脚直流电流 40 mA
    • Flash Memory 16 or 32 KB (其中2 KB 用于 bootloader)
    • SRAM 1 KB or 2 KB
    • EEPROM 0.5 KB or 1 KB (ATmega328)
    • FT232RL FTDI USB接口芯片
    • 工作时钟 16 MHz

    3.5.2 Arduino LilyPad

        Arduino 一个特殊版本,是为可穿戴设备和电子纺织品而开发的。
        Arduino LilyPad可以通过USB连接或者外部电源供电,电压可从2.7V到5.5V,需要注意Arduino LilyPad没有保护电路,输入电压不能正负接反也不能超过阀值。

    image

    • 处理器 ATmega168 or ATmega328
    • 工作电压 2.7V-5.5V
    • 输入电压 2.7V-5.5V
    • 数字IO脚 14 (其中6路作为PWM输出)
    • 模拟输入脚 6
    • IO脚直流电流 40 mA
    • 3.3V脚直流电流 50 mA
    • Flash Memory 16 KB (ATmega168,其中2 KB 用于 bootloader)
    • SRAM 1 KB
    • EEPROM 0.5 KB
    • 工作时钟 8 MHz

    3.5.3 Arduino Mini

        Arduino Mini是Arduino 的最简洁微型版本,可以插在面包板上,适用于对尺寸要求严苛的场合。
        Arduino MIni必须外接扩展板才能够下载程序。

    image

    • 处理器 ATmega328
    • 工作电压 5V
    • 输入电压 7-9V
    • 输入充电电压 3.7-7V
    • 数字IO脚 14 (其中6路作为PWM输出)
    • 模拟输入脚 8
    • IO脚直流电流 40 mA
    • Flash Memory 32 KB (其中2 KB 用于 bootloader)
    • SRAM 2 KB
    • EEPROM 1 KB
    • 工作时钟 16 MHz

    4.第一行代码

        博主这里不交大家安装ArduinoIDE,请自行到Arduino官网下载最新版本,目前是1.8.9版本。当你在Arduino IDE上新增项目,默认是以下代码:

    void setup() {
      // put your setup code here, to run once:
     
    }
     
    void loop() {
      // put your main code here, to run repeatedly:
     
    }
    

        会发现,Arduino的程序结构与传统的c程序结构有所不同——Arduino程序中没有main函数。其实并不是Arduino程序中没有main函数,而是main函数的定义隐藏在了Arduino的核心库文件中。在进行Arduino开发中不直接操作main函数,而是使用setup和loop这两个函数。

    4.1 setup()

        Arduino控制器通电或者复位后,就会开始执行Arduino的初始化配置(IO口 串口等);

    4.2 loop()

        setup函数执行完毕后,Arduino会接着执行loop()函数中的程序。而loop函数是一个死循环,其中的程序会不断地重复运行。通常在loop函数中完成程序的主要功能,如驱动各种模块和采集数据等。
        所以,这个模型应该是这样的:

    int main(){
        setup();
        while1{
            loop();
        }
    }
    

        这样就满足c的程序结构了。

    5.总结

        本篇主要讲解常用的Arduino板子以及它们的硬件特性,读者可以根据自己的实际情况购买学习,博主建议初学者可以入手Mega板子,性价比高。

    展开全文
  • 本文介绍了Arduino学习A8 -Arduino 连接 DS1302时钟过程中所遇到的问题及解决方法的笔记
  • Arduino学习笔记-1*

    Arduino学习笔记-1*
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Arduino学习笔记

    2018-12-02 18:55:18
    title: Arduino学习笔记 文章目录title: Arduino学习笔记一、Ardauino 简介二、Arduino 硬件介绍三、语法详解1. 程序结构2 变量3 基本函数 一、Ardauino 简介 Arduino 是一块基于开放原始代码的Simple i/o 平台,...
  • arduino学习笔记

    2019-02-09 13:11:20
    arduino学习笔记 要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。 1.什么是单片机?它与个人计算机有什么不同? 一台能够工作的计算机要有这样几个部份构成: 中央处理单元CPU...
  • arduino 学习笔记

    2018-03-14 18:16:18
    arduino 学习笔记(一)1、实验目的 使用arduino实现LED灯闪烁2、实验工具 arduino UNO 一个 USB 连接线 一个 LED 灯 一个 杜邦线 两根3、原理图 4、实际连接图 5、编写程序void setup() { pinMode( 2 , ...
  • Arduino学习】01.HelloArduino.ino,Arduino UNO开发板的第一个学习资料,Hello World的ino代码,可以配合https://blog.csdn.net/wsq_666/article/details/110625026连接搭配使用
  • Arduino从基础到完全掌握(最完整的arduino学习资料)
  • 最近由于兴趣原因,决定重新捡起arduino,所以决定写这个万能超的arduino学习日记跟大家一起重新学习。最开始的入门学习,我选择跟B站太极创客的学习视频,因为有基础,选择二倍速观看学习。从arduino...
  • Arduino学习之呼吸灯

    2020-01-08 22:03:38
    Arduino学习之呼吸灯 单片机:七星虫LY-F2开发板兼容Arduino 软件版本:Arduino 1.8.10 今天突然找到了自己去年买的这款七星虫LY-F2开发板,发现自己好像买来就让它吃灰没用过,于是就拿来玩一下,试完第一个例程...
  • Arduino学习之路

    2019-05-21 20:43:55
    Arduino学习小结1 I/O板的基本组成 USB插座 通过USB线进行通信。 电源插座 供电。 数字扩展插座 该插座上的每一个针,只有0和1两种状态,是一种数字量。 模拟扩展插座 该插座上的量可以是各种量(0~1),...
  • Arduino学习例程

    2018-01-13 00:37:27
    一个个Arduino例子说明和源代码提供。这是第一部分,还有第二部分有有提供。
  • arduino学习笔记6-按键实验 arduino学习笔记6按键实验 我们讲了数字IO口介绍以及做了流水灯演示主要用到IO口的输出功能这节课我们讲解一下IO口的输入功能说到输入功能最经典的例子莫过于按键实验 按键开关按键是一种...
  • ROS与Arduino学习(九)ros_arduino_brige固件 ROS与Arduino学习(九)ros_arduino_brige固件 Tutorial Level:电机控制(基于ros_arduino_brige) Next Tutorial: Tips 1 ros_arduino_bridge的安装 1、下载 ...
  • Arduino学习材料

    2020-04-22 09:57:24
    Arduino传感器应用教程 Arduino教程(+文本教程) ...Arduino 训练营:通过项目学习 Arduino编程:语法,概念,Arduino和Proteus和示例-第三版 Arduino遇见Linux:ArduinoYún开发用户指南 通过制作Arduino UNO FM收...
  • Arduino学习笔记② Arduino语言基础

    千次阅读 2019-06-20 09:01:51
        在初步认识什么是Arduino之后,我们就开始讲解一下Arduino语言基础,我们需要知道到底Arduino提供了什么平台以及什么语言来让我们做开发(技术基本上都是先学习开发语言)。 2.Arduino语言以及程序结构  ...
  • arduino学习笔记(二) 文章目录arduino学习笔记(二)时间函数 时间函数
  • ROS与Arduino学习(八)电机控制(基于rosserial_arduino) ROS与Arduino学习(八)电机控制(基于rosserial_arduino) Tutorial Level:小案例节点通信 Next Tutorial:ros_arduino_brige固件 Tips 1 Arduino上...
  • 文章目录Arduino 学习硬件认识Arduino UNO 主要元器件Arduino 端口软件认识Arduino IDEArduino 程序架构程序基础内容简述数据类型时间控制⏲计时函数延时函数串口通信????端口间通信的类型Arduino 串口通信扩展电子...
  • Arduino学习过程

    2020-08-17 17:20:59
    1. Arduino官网: https://www.arduino.cc/ 2. Arduino UNO Rev3开发板: https://store.arduino.cc/usa/arduino-uno-rev3 3. Arduino IDE开发环境及软件: 软件下载地址: ...
  • Arduino学习笔记——按键控制 int x = 0 ; void setup() { pinMode(8,INPUT); pinMode(4,OUTPUT); } void loop() { if(digitalRead(8) == LOW) { delay(200); x = !x ; if(x ==1) {digitalWrite(4, LOW);} else { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,313
精华内容 1,325
关键字:

arduino学习