精华内容
下载资源
问答
  • arduino 教程
    2022-07-19 21:29:38

    ESP32:Arduino教程汇总

    最近在搞ESP32,偶然发现Arduino框架的中文社区,感觉非常有用,在此记录一下相关链接,以防后面丢失。

    1、Arduino常用函数参考: https://wiki.arduino.cn/

    进去以后能看到各种常用用法如下,非常的顶!!!!!!!!!
    

    在这里插入图片描述

    2、Arduino中文社区各种参考例程,非常的顶!!! 传送门

    在这里插入图片描述

    更多相关内容
  • Arduino教程

    2016-10-19 10:48:55
    Arduino 是一块基与开放原始代码的Simple i/o 平台,並且具有使用类似java,C 语言的开发环境。让您可以快速 使用Arduino 语言与Flash 或Processing…等软件,作出互动作品。Arduino 可以使用开发完成的电子元件例如...
  • Arduino教程从基础到进阶的33堂课/ ├── 基礎教程 │ ├── 第10课 超声波测距模块的使用 │ ├── 第11课 中断程序介绍 │ ├── 第12课 霍尔模块、外部中断与millis()计时 │ ├── 第13课 旋转编码器与...
  • Arduino教程.pdf

    2020-01-09 14:41:54
    Arduino教程》为人们深入浅出的讲解了Arduino的基本使用方法,其中包括Arduino IDE 工具的使用、编程范例、各种电子器件的使用等
  • arduino教程

    2019-03-12 17:59:21
    包括数字输出、数字输入、模拟输入、模拟输出、串口输入、串口输出、XBee无线通信、arduino电机驱动扩展板、电子积木
  • 内部包括语句的说明,硬件的使用介绍,Arduino中文教程
  • arduino教程.pdf

    2020-01-05 08:08:40
    arduino教程》为人们深入浅出的讲解了Arduino的基本使用方法,其中包括Arduino IDE 工具的使用、编程范例、各种电子器件的使用等
  • Arduino教程:Arduino图形化编程软件-ArduBlock.docArduino教程:Arduino图形化编程软件-ArduBlock.docArduino教程:Arduino图形化编程软件-ArduBlock.docArduino教程:Arduino图形化编程软件-ArduBlock.docArduino...
  • Arduino教程Arduino动手入门研讨会该研讨会由以下人员创建:Michael Shiloh和Judy Castro为“教我做” Sudhu Tewari 2020年修订Arduino示例-即将推出! 该研讨会的重点是使您快速入门并使用Arduino,以便您了解使用...
  • Arduino入门教程.pdf

    2021-06-14 21:34:25
    适合arduino入门学习,案例丰富,实操性强
  • arduino DS1302型号的时钟模块开发
  • 无涯教程网(learnfk)整理提供:Arduino是一款便捷灵活、方便上手的开源电子原型平台
  • 今天学习Arduino教程 Lesson 之--自制风扇,大家没事了可以试试。
  • Arduino 教程

    2015-11-10 14:30:14
    关于Arduino的中文教程
  • arduino教程 arduino教程

    2014-09-16 13:58:39
    arduino教程,非常适合初学者,希望对初学者有帮助;
  • Arduino教程 简单教程 传感器集成项目 其他高级项目 如果我的教程对您的工作有所帮助,请不要忘记给我的资源库加注星标。 如有任何其他疑问,请打开问题或直接给我发送电子邮件至 。 我还为L293D制作了H桥电机驱动...
  • 德飞莱 arduino mega8核心板使用说明书、
  • 代码-教程-Arduino Arduino 教程代码 MakerColombia 教程中使用的代码
  • 描述该存储库包含取自 Sun Founder 入门套件的 Arduino 教程。 此 repo 中的两种文件: .fzz 文件是 Fritzing 原理图。 .ino 是 Arduino 草图。链接Fritzing 工具: : Sun Founder 入门套件: : c=show&id=3&model=...
  • 数字输出Arduino教程一: 11 Comments ?Arduino教程, 除了管脚的数字Arduino7到管脚2I/O个可用的6I/O被分成两个部分其中每个部分都包含有管脚即管脚到管脚8和管脚13I/O1K上接了一个13来对位的数字跑马灯6上ATmega其他...
  • 在此视频中,我向您展示了如何使用Arduino制作迷你钢琴。
  • TutorialsPoint Arduino 教程.epub
  • arduino教程——贪睡数字闹钟

    千次阅读 2022-02-20 09:25:12
    点击此处alarm-clock.ino - Wokwi Arduino and ESP32 Simulator开始在线仿真 该数字闹钟在4位7段显示屏上显示时间。它具有以下特点: 两个按钮用于设置当前时间(小时/分钟) 具有贪睡功能的可编程警报 报警声音...

    5.UNO闹钟

    点击此处alarm-clock.ino - Wokwi Arduino and ESP32 Simulator开始在线仿真
    在这里插入图片描述

    该数字闹钟在4位7段显示屏上显示时间。它具有以下特点:

    • 两个按钮用于设置当前时间(小时/分钟)
    • 具有贪睡功能的可编程警报
    • 报警声音可以在代码中轻松自定义,甚至可以播放旋律
    • 冒号闪烁以指示秒数
    • 可选RTC,使时钟更精确
    • 断电恢复:当前时间和报警设置存储在RTC中

    如何使用时钟

    要设置时间,请按分钟/小时按钮。

    按下警报按钮可启用/禁用警报。屏幕将通过显示单词"打开"或"关闭"来显示警报状态。

    启用报警后,当前报警时间将显示几秒钟。您可以使用分钟/小时按钮来调整闹钟时间。要完成操作,请再次按"闹钟"按钮,或等待几秒钟。

    当闹钟响起时,短按闹钟按钮可将其暂停 9 分钟。屏幕将显示四个圆圈,让您知道闹钟已打盹。

    要停止闹钟,请按住闹钟按钮一秒钟或更长时间。

    项目结构

    该代码分为几个模块:

    1. config.h - 时钟的配置选项:是否使用RTC芯片,贪睡时间等。当程序中有多个模块时,使用配置文件是一种常见的做法。
    2. alarm-clock.ino - 主程序代码。它管理用户界面:7段显示器和按钮。
    3. 时钟 - 类管理当前时间和警报状态机。它使用RTClib库与RTC芯片通信并跟踪时间。Clock
    4. 闹钟铃声 - 班级播放闹钟声音。您可以更改数组的值,并自定义闹钟并播放不同的音调和旋律。AlarmTone``TONES``TONE_TIME``TONE_SPACING

    硬件

    项目数量笔记
    Arduino Uno R31
    4 位 7 段4通用阳极,14 引脚
    220Ω 电阻器8连接到 7 段段引脚
    PNP 晶体管4可选,推荐
    4.7kΩ 电阻器4如果您使用PNP晶体管
    12 毫米按钮3
    压电蜂鸣器1用于报警
    DS1307 RTC1自选
    • 您还可以使用共阴极7段显示器,只需在config.h中调整常数,然后切换到NPN晶体管。DISPLAY_TYPE

    为了将时钟硬件保持在最低限度,Arduino使用SevSeg库直接控制7段显示。但是,这种方法有一个缺点:它使用12个GPIO引脚!

    如果要节省Arduino引脚,可以使用74HC595移位寄存器将引脚使用量减少到6个,甚至可以使用带有集成控制器芯片的7段显示器,例如TM1637HT16K33MAX7219。在这种情况下,您需要更改代码以使用不同的显示库(SevSeg 不支持这种情况),但这超出了本项目的范围。

    引脚连接

    Arduino Uno PinDeviceDevice Pin
    27-Segment14 (Dig 1)
    37-Segment11 (Dig 2)
    47-Segment10 (Dig 3)
    57-Segment6 (Dig 4)
    67-Segment13 (A)
    77-Segment9 (B)
    87-Segment4 ©
    97-Segment2 (D)
    107-Segment1 (E)
    117-Segment12 (F)
    127-Segment5 (G)
    137-Segment8 (Colon)
    A0Hour Button-
    A1Minute Button-
    A2Alarm Button-
    A3Buzzer / Speaker-
    A4DS1307 RTCSDA
    A5DS1307 RTCSCL
    • The pin numbers for your 7-segment display may differ. Please consult the datasheet relevant to your device to find out the relevant pin numbers.

    代码

    /**
       Arduino Digital Alarm Clock
    
       Copyright (C) 2020, Uri Shaked.
       Released under the MIT License.
    
    */
    
    #include <SevSeg.h>//数码管函数库
    #include "Button.h"
    #include "AlarmTone.h"
    #include "Clock.h"
    #include "config.h"
    
    const int COLON_PIN = 13;
    const int SPEAKER_PIN = A3;
    
    Button hourButton(A0);
    Button minuteButton(A1);
    Button alarmButton(A2);
    
    AlarmTone alarmTone;//闹钟音
    Clock clock;//
    SevSeg sevseg;//
    
    enum DisplayState {//枚举显示时钟,时间等参数
      DisplayClock,
      DisplayAlarmStatus,
      DisplayAlarmTime,
      DisplayAlarmActive,
      DisplaySnooze,
    };
    
    DisplayState displayState = DisplayClock;
    long lastStateChange = 0;
    
    void changeDisplayState(DisplayState newValue) {
      displayState = newValue;
      lastStateChange = millis();
    }//改变显示时间
    
    long millisSinceStateChange() {
      return millis() - lastStateChange;
    }
    
    void setColon(bool value) {
      digitalWrite(COLON_PIN, value ? LOW : HIGH);
    }//设置冒号
    
    void displayTime() {
      DateTime now = clock.now();
      bool blinkState = now.second() % 2 == 0;
      sevseg.setNumber(now.hour() * 100 + now.minute());
      setColon(blinkState);
    }
    
    void clockState() {
      displayTime();
    
      if (alarmButton.read() == Button::RELEASED && clock.alarmActive()) {
        //读取alarmButton has_changed()以清除其状态
        alarmButton.has_changed();
        changeDisplayState(DisplayAlarmActive);
        return;
      }
    
      if (hourButton.pressed()) {
        clock.incrementHour();
      }//按键按下增加小时
      if (minuteButton.pressed()) {
        clock.incrementMinute();
      }
      if (alarmButton.pressed()) {
        clock.toggleAlarm();
        changeDisplayState(DisplayAlarmStatus);
      }
    }
    
    void alarmStatusState() {
      setColon(false);
      sevseg.setChars(clock.alarmEnabled() ? " on" : " off");
      if (millisSinceStateChange() > ALARM_STATUS_DISPLAY_TIME) {
        changeDisplayState(clock.alarmEnabled() ? DisplayAlarmTime : DisplayClock);
        return;
      }
    }//闹钟开关
    
    void alarmTimeState() {
      DateTime alarm = clock.alarmTime();
      sevseg.setNumber(alarm.hour() * 100 + alarm.minute(), -1);
    
      if (millisSinceStateChange() > ALARM_HOUR_DISPLAY_TIME || alarmButton.pressed()) {
        changeDisplayState(DisplayClock);
        return;
      }
    
      if (hourButton.pressed()) {
        clock.incrementAlarmHour();
        lastStateChange = millis();
      }
      if (minuteButton.pressed()) {
        clock.incrementAlarmMinute();
        lastStateChange = millis();
      }
      if (alarmButton.pressed()) {
        changeDisplayState(DisplayClock);
      }
    }
    
    void alarmState() {
      displayTime();//显示时间
    
      if (alarmButton.read() == Button::RELEASED) {
        alarmTone.play();//启动报警
      }
      if (alarmButton.pressed()) {
        alarmTone.stop();//按键按下报警结束
      }
      if (alarmButton.released()) {
        alarmTone.stop();//按键释放报警结束
        bool longPress = alarmButton.repeat_count() > 0;
        if (longPress) {//长按
          clock.stopAlarm();
          changeDisplayState(DisplayClock);
        } else {
          clock.snooze();//小盹模式
          changeDisplayState(DisplaySnooze);
        }
      }
    }
    
    void snoozeState() {//小盹模式
      sevseg.setChars("****");
      if (millisSinceStateChange() > SNOOZE_DISPLAY_TIME) {
        changeDisplayState(DisplayClock);
        return;
      }
    }
    
    void setup() {
      Serial.begin(115200);
    
      clock.begin();
    
      hourButton.begin();
      hourButton.set_repeat(500, 200);
    
      minuteButton.begin();
      minuteButton.set_repeat(500, 200);
    
      alarmButton.begin();
      alarmButton.set_repeat(1000, -1);
    
      alarmTone.begin(SPEAKER_PIN);
    
      pinMode(COLON_PIN, OUTPUT);
    
      byte digits = 4;
      byte digitPins[] = {2, 3, 4, 5};
      byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12};
      bool resistorsOnSegments = false;
      bool updateWithDelays = false;
      bool leadingZeros = true;
      bool disableDecPoint = true;
      sevseg.begin(DISPLAY_TYPE, digits, digitPins, segmentPins, resistorsOnSegments,
                   updateWithDelays, leadingZeros, disableDecPoint);
      sevseg.setBrightness(90);
    }
    
    void loop() {
      sevseg.refreshDisplay();
    
      switch (displayState) {
        case DisplayClock:
          clockState();
          break;
    
        case DisplayAlarmStatus:
          alarmStatusState();
          break;
    
        case DisplayAlarmTime:
          alarmTimeState();
          break;
    
        case DisplayAlarmActive:
          alarmState();
          break;
    
        case DisplaySnooze:
          snoozeState();
          break;
      }
    }
    
    

    结束

    知命者不怨天,知己者不怨人。 – 淮南子 《淮南子》
    在这里插入图片描述

    展开全文
  • ESP8266 arduino开发资料。
  • Arduino教程:Arduino图形化编程软件-ArduBlock借鉴.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,138
精华内容 5,655
关键字:

arduino 教程

友情链接: Documents.rar