1.如何在Instructables Arduino比赛中制作并3D打印独特的钟源HoloClock环形时钟?
2.ESP32入门「08」:Arduino-ESP32 LEDC API 详解
3.DIY一个低成本的多功能点阵时钟
4.[嵌入式开发] 使用Clion IDE进行 Arduino | ESP32 开发
5.Arduino(九)——lcd时钟以及库函数介绍
6.Arduino 多任务处理应用中级篇-带你进入神奇的中断世界
如何在Instructables Arduino比赛中制作并3D打印独特的HoloClock环形时钟?
探索未来设计:HoloClock,一款3D打印的钟源艺术与科技融合之作 独具匠心的“saulemmetquinn”打造了一款引人注目的3D打印环形时钟,它在Instructables Arduino竞赛中荣获亚军,钟源展现出了科技与创新的钟源完美结合。这款时钟巧妙地运用了步进电机和Arduino Uno微控制器,钟源它们如同精密的钟源安卓源码素材乐团,共同演绎时间的钟源旋律。在OnShape这款在线设计平台上,钟源设计师耗时一月精心打造了每一个部件,钟源详细的钟源制作指南也通过Instructables网站一并提供,让每一位爱好者都能亲手创造属于自己的钟源HoloClock。 设计亮点 环形设计中,钟源两环相扣,钟源犹如层层叠叠的钟源牙齿,别具一格。钟源背面的环形指针充当分针,通过步进电机的精准驱动,快速旋转以指示时间。而时针则更显沉稳,由一组根据的因子设计的齿轮驱动,确保了恒定的速度和精准的时间显示。 动手制作的魅力 首次分享的“saulemmetquinn”热情洋溢地介绍,这款时钟不仅是一件3D打印的艺术品,更是技术爱好者实践的舞台。只需将Arduino Uno与步进电机驱动器相连,通过USB编程一次,HoloClock便能准确地记录每一刻。如果你在体验过程中遇到任何问题,这位创作者随时欢迎反馈,共同提升作品的质量。 这款HoloClock的设计巧妙,电子元件的整合既简洁又高效,每个细节都充满了科技与艺术的百万源码指标碰撞,等待着你去发掘和定制。快来体验这款3D打印环形时钟的魅力,让时间的艺术在你的指尖流转吧!ESP入门「」:Arduino-ESP LEDC API 详解
本文详细介绍了ESP芯片的LED控制(LEDC)及其API。LEDC主要用于控制LED,也可产生PWM信号用于其他设备的控制。ESP SoC拥有6到个通道(具体数量因SoC型号而异),可以生成独立的波形,例如用于驱动RGB LED设备。
LEDC通道分为两组,高速通道和低速通道。高速通道模式在硬件中实现,可自动且无干扰地改变PWM占空比。低速通道模式下,PWM占空比需由软件驱动器改变。每组通道可使用不同的时钟源。LED PWM控制器可在无需CPU干预的情况下自动改变占空比,实现亮度和颜色渐变。
设置LEDC通道运行在高速模式或低速模式,需进行配置。可选步骤之一是在渐变终端设置中断。
Arduino-ESP LEDC API中的`ledcSetup()`函数用于启动LEDC,指定通道、频率、分辨率。成功配置返回频率,失败返回0。
`ledcAttachPin()`函数用于设置LEDC引脚的通道。`ledcAttachChannel()`函数用于设置LEDC引脚的频率、分辨率和通道。`ledcWrite()`用于设置LEDC引脚的占空比,`ledcRead()`用于获取引脚配置的小说app源码挖矿占空比,`ledcReadFreq()`用于获取配置的频率。
`ledcWriteTone()`和`bledcWriteNote()`函数用于将LEDC引脚设置为给定频率上的PWM音调和特定音符。`ledcDetach()`用于将引脚与LEDC分离。`ledcChangeFrequency()`用于设置引脚频率,`ledcOutputInvert()`用于设置反相输出,`ledcFade()`用于设置和启动淡入淡出,`ledcFadeWithInterrupt()`和`ledcFadeWithInterruptArg()`用于通过中断设置和启动淡入淡出。
`analogWrite()`函数用于在引脚上写入模拟值(PWM波),兼容Arduino的analogWrite功能。`analogWriteResolution()`和`analogWriteFrequency()`用于设置模拟写入引脚的分辨率和频率。
以下示例展示了LEDC API的应用:
示例1:软件淡入淡出(已验证)
代码位于:文件 -> 示例 -> ESP(ESP S3 Dev Module示例) -> AnalogOut -> LEDCSoftwareFade。
示例2:淡入淡出(未验证)
示例3:RGB写入(未验证)
本文部分信息来自ESP Arduino Core's documentation和Arduino-ESP LEDC API。API函数带有[- ]的在文档中有声明;带有[* ]标记的可能在不同ESP for Arduino版本中引发编译错误。更多教程和专栏更新敬请期待。
欢迎知友们参与讨论,提供优化建议和批评意见。
DIY一个低成本的多功能点阵时钟
今天分享一篇关于DIY低成本多功能点阵时钟的教程。我通过ESP进行硬件开发,结合Arduino IDE软件,实现了一个具有掉电时间不重置、时间误差小、成本低、功能多的点阵时钟。此项目基于我自身的兴趣和初学者身份,旨在体验从头开始的开发过程,并在其中融入个人想法,最终实现极简的点阵时钟,具备核心功能(时钟、低误差)、额外功能、简洁交互和低成本。
硬件选材方面,网页源码预览app我主要介绍了核心硬件NodeMcu(ESP)、DS(用于掉电时间和低误差)、Max点阵驱动芯片(支持级联)以及杜邦线、单路触摸模块等辅助部件。这些材料可以在淘宝的欣薇电子科技等店铺找到,价格适中且便于购买。
在制作过程中,我详细描述了购买元器件、安装Arduino IDE和ESP SDK、连接硬件、编写和测试程序的步骤。特别强调了使用杜邦线快速搭建电路的重要性,以及连接NodeMcu与DS、Max点阵、单路触摸模块的具体方法。
交互方面,硬件上使用触摸按键提供人机交互,而程序则通过微信小程序实现更丰富的功能。选择小程序作为交互方式,是因为其操作简便、无需服务器支持,且通过UDP通讯确保了即开即用的特性。通信协议自定义,确保数据传输的高效和稳定。
在优化和自我评价部分,我提到项目的复杂性和个人在实践中的成长。尽管存在不足,但通过实践,我更深入地理解了所掌握的技能,并认识到系统性学习的重要性。提供了一个在线取模工具,供需要改进的swing2048源码读者参考和使用。
总之,通过这次DIY项目,我不仅实现了个人技能的提升和实践经验的积累,也希望通过分享,激发更多人对嵌入式开发和物联网技术的兴趣,尤其是那些希望以最低成本制作多功能点阵时钟的爱好者。
[嵌入式开发] 使用Clion IDE进行 Arduino | ESP 开发
Arduino是一个开源的,支持多种类型单片机开发的代码框架,该框架最大程度的封装了单片机底层代码,开发者面对不同型号,品牌,类型的单片机时都可以使用几乎相同的C++代码进行程序编写而不必思考底层(寄存器,时钟,外设等........)的实现,可以很方便的在不同类型的单片机上进行移植,同时具有非常丰富和优质的库支持,非常适合没有硬件基础的软件程序员和想学习入门单片机开发的新手使用。
Arduino支持多种开发环境和平台,官方有Arduino IDE(实际体验非常糟糕所以我选Clion或VS),本文将介绍在Windows环境下使用Clion IDE的Platformio插件进行ESP开发。
准备:ESP开发板:购买链接:淘宝稚晖君的开源项目:GithubClion IDE:下载链接:Jetbeains官网Python环境:下载链接:Python官网MinGW工具集(新版本的Clion会自行下载部署工具链,可以不用手动下载和设置)下载链接MinGW官网下载链接Github
软件安装:Clion下载安装:打开Clion官网,点击右上角Download进入下载界面选择操作系统Windows后单击Download开始下载下载完成后打开安装包按照提示进行安装这里要注意在安装过程中勾选[Add"bin"folder to the PATH]将Clion添加到环境变量中等待安装完成安装Python环境网上教程很多也非常详细,此处不做过多赘述安装MinGW(新版本的Clion会自行下载部署工具链,可以不用手动下载和设置)打开MinGW项目的github的链接地址打开链接后如下图选择wdevkit进行下载,解压后将文件夹移动到合适的位置,这里我放置到D盘根目录下移动完成后打开文件夹下的bin文件夹,复制文件夹地址,添加到环境变量
Platformio插件安装激活Clion安装汉化插件点击左栏的[Plugins]打开插件下载界面搜索:chinese找到[Chinese(Simplified)Languge pack]后点击Install安装,重启软件后IDE变为中文安装配置Platformio重启IDE后再次打开插件界面,搜索Platformio,找到[PlatformIO for Clion]后点击安装,完成后按提示重启软件重启软件后选择新建项目这时可以看到新建项目界面左侧有Platform标志,点击PlatformIO后会发现右侧没有开发板列表,只显示“找不到PlatformIO实用程序”对于此问题我们需要按照提示点击安装指南进入PlatformIO官网Wiki,点击 [Installer Script]进入另一个界面在该界面点击installer script进入Github界面get-platformio.py并下载到桌面在文件路径下打开终端,使用Python运行该脚本运行完成后找到 C:\Users\”用户名“ 该路径下的文件中多出来 [.platformio]文件证明python脚本运行成功,之后将 C:\Users\Zhang\.platformio\penv\Scripts 下的文件加入到环境变量再次打开Clion,可以看到Clion加载出了开发板列表
设置MinGW路径(新版本的Clion会自行下载部署工具链,可以不用手动下载和设置)打开 设置 ->构建,执行,部署->工具链 设置工具集为上文MinGW所在的位置路径,看到地址栏下出现绿色对号和版本号后即为设置成功
程序编译和下载选择我们的开发板型号:ESP-Pico Kit框架选择:Arduino在上方设置好新建文件位置后,点击右下角新建工程文件等待Clion自动安装工程所需文件(只需要在开发板第一次创建工程时安装)安装完成后即可编写代码我们写一个流水灯的程序进行测试选择上传程序单击“绿色锤子”标志开始编译程序,单击“绿色三角形”标志开始向目标板下载程序我们使用USB连接开发板后单击“绿色三角形”向目标板下载程序
Arduino(九)——lcd时钟以及库函数介绍
Arduino(九)——LCD时钟及库函数详解
在深入理解Arduino编程后,我们来详细探讨LiquidCrystal库和串口通信相关的函数。 LiquidCrystal库是Arduino与LCD显示器交互的核心,通过以下函数设置和控制LCD:通过 LiquidCrystal(rs, (rw), enable, (d0, d1, d2, d3), d4, d5, d6, d7) 初始化LCD,参数分别对应控制引脚。
lcd.begin(cols, rows) 设置LCD的列数和行数。
lcd.clear(), lcd.home(), lcd.setCursor(col, row), lcd.write(data) 分别用于清屏、复位光标、设置光标位置和输出字符。
字符串操作函数如 lcd.print(data) 可输出一串字符,而 lcd.no*() 系列方法控制光标、闪烁和显示状态。
滚动显示和自动滚屏功能通过 lcd.scrollDisplayLeft/Right(), lcd.a/Autoscroll() 实现。
自定义字符通过 lcd.createChar(num, data) 创建,num为编号,data为像素数据。
在模拟串口通信方面,SoftwareSerial类提供了:SoftwareSerial mySerial(rxPin, txPin) 创建软串口。
mySerial.listen(), mySerial.isListening(), mySerial.overflow() 分别用于监听、判断监听状态和检查溢出。
对于硬件串口(UART),如Serial类提供了接收、发送、搜索和控制功能,如:Serial.available(), Serial.begin(), Serial.end(), Serial.find(), Serial.flush(), Serial.read(), Serial.write() 等。
两个设备通过交叉连接TX和RX,并将GND相连。在Arduino Mega中,Serial类扩展到了多个实例。 IIC总线通信则通过Wire类库,如:Wire.begin(), Wire.requestFrom(), Wire.beginTransmission(), Wire.write(), Wire.available(), Wire.read(), Wire.onReceive(), Wire.onRequest() 等。
此外,EEPROM类库用于存储数据,如 EEPROM.write(), EEPROM.read(),以及使用union类型处理大数据的存储和读取。Arduino 多任务处理应用中级篇-带你进入神奇的中断世界
在深入Arduino多任务处理中级篇之前,我们先理解处理器如何处理任务。通常情况下,处理器专注于执行一个任务。然而,在复杂项目中,需要同时处理多个任务。这里,我们将通过本系列第1部分学习的技术,探索并实践Arduino中断,以实现处理器多任务处理,同时保持代码的响应性和简洁性。
我们将学习使用定时器中断来让程序像时钟一样运行,以及外部中断来接收外部事件通知。此外,我们将探讨Arduino定时器的配置以及如何在中断中执行代码,从而在循环中进行更多操作。
中断是处理器立即停止当前任务并处理高优先级事务的机制。中断处理程序类似于普通函数,当中断信号触发时,它将被调用。处理器在中断处理程序完成后返回,继续执行之前中断的任务。
中断可以从多种来源产生,包括外部事件、计时器等。使用中断的好处在于,我们无需在代码中频繁检查高优先级中断条件,也不用担心响应延迟或错过事件。中断处理程序只需编写相应代码即可。
Arduino Uno包含三个定时器:Timer0、Timer1 和 Timer2。其中,Timer0用于生成毫秒中断以更新millis()计时器。接下来,我们将学习如何使用Timer0为项目生成中断。
计时器是一种简单的计数器,根据MHz系统时钟频率进行计数。通过调整时钟除数,可以更改频率和计数模式。Timer0是一个8位计数器,从0到溢出时产生中断。默认频率接近1KHz,避免影响millis()计时。
Arduino定时器配置寄存器允许我们进行更深入的配置,如比较寄存器,用于生成特定条件下的中断。我们将在比较寄存器中设置值,当计数器与之相等时产生中断。这将用于在特定时间间隔执行代码。
我们将定义中断处理程序,如“TIMER0_COMPA_vect”,并在其中执行循环中的所有操作。这将允许我们在中断发生时执行任何操作,即使循环中执行的其他任务不会受到影响。
学习如何配置和使用计时器中断将使我们能够实现更高效、响应性更强的多任务处理。这将有助于我们创建更加复杂和动态的Arduino项目。
接下来,我们将探索外部中断的使用,这将使我们能够在程序外的事件发生时接收通知。这将特别有用,例如在按钮按下或接收脉冲信号时。我们还将学习如何使用外部中断实现特定功能,如在按钮按下时立即重置伺服器位置。
外部中断提供了另一种处理外部事件的方式,无需频繁检查引脚状态。这将增强我们项目的响应性和可靠性。
总之,通过理解和应用Arduino中断,我们能够实现多任务处理,使Arduino项目更加复杂、功能强大且响应性高。通过本指南的实践,您将能够掌握中断的使用,为您的Arduino项目带来更丰富的功能和性能。
深入探索计时器和中断功能,将使您能够创建更加智能、响应性更强的Arduino应用。通过实践,您将发现中断如何帮助您在复杂项目中高效地处理多个任务。
基于ESP做一个漂亮的迷你时钟
本文将展示如何利用ESP打造一款功能丰富的迷你彩色时钟,同时具备温度监测功能。首先,你需要准备NodeMCU用于显示时间,Arduino负责监测温度,LED WSB 的可寻址特性将使得色彩变换更为灵活。每个LED的工作电压为3.0V到5.5V,NodeMCU的3.3V稳压器足以驱动。 项目中采用了NeoPixel LED,其集成的IC允许对每个像素独立控制颜色,通过调整0-的数字值。LED有4个引脚,包括数据输入和输出,通过串联数据和并联电源连接,可实现数字和文字显示。构建面板时,要模仿液晶显示器的段落布局并编写相应的代码。 连接时钟面板时,加入PCB板以连接不同部分。ESP的集成特性如Tensilica处理器和Wi-Fi支持,使得远程时间同步变得简单。通过DHT传感器和触觉按钮,你可以实时获取温度信息,而LDR传感器则用于调节亮度,使之随环境光线变化。 整个项目包括电路设计、硬件连接和代码编写,其中3个LED构成每个面板,总共需要个LED。Cirkit Designer软件在电路设计和物料清单管理上提供了便利。全套文件可在GitHub仓库找到:/halfstudents/ESP-Wi-Fi-based-7-Segment-Display-clock。