数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3655|回复: 15

[Arduino] arduino对于新手真的很友好,没弄过并有兴趣的新手可以试试

[复制链接]
发表于 2021-8-12 11:45:25 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
此前在这里发帖曾经说过,为了玩ESP8266准备到arduino的坑里转转浅尝辄止的玩玩,最近很无聊就想起来这事了,于是,弄软件、配置esp8266开发板弄的不亦乐乎,于是测试各种示例、例程,弄了几天后虽然并不知道在arduino IDE上怎样写代码,但是大致可以玩耍了,那块NODEMCU小板子也可以操控了,wifi时间也能显示了,接下来到了实现自己的想法的时候了,先试着用8266控制RX8025时钟芯片,按照固有思维在网上到处找RX8025的库文件,倒是被我找到了两个但都不好用,此后卡住很久,昨天偶然读到一篇关于讲解write.h的应用的帖子,于是悟到了一些就试着用C语言写了测试代码,结果发现arduino是可以用C来编程的,而且配合基础库做I2C驱动要比用keil简单的太多了,看来懂些C编程的用arduino真的是可以玩耍的,虽然前方的各种坑还不知深浅,但只要不是无从下手就好。
发表于 2021-8-12 12:11:08 | 显示全部楼层
arduino有库就好办,8266工具没有arduino多吧,我也是刚刚开始玩:lol:
回复 支持 反对

使用道具 举报

发表于 2021-8-12 12:22:27 | 显示全部楼层
arduino现在发展为一个软件平台架构,底层支持多款MCU,不光是AVR,8266,ESP32、ARM、STM8、MSP430、51等都是支持的。
回复 支持 反对

使用道具 举报

发表于 2021-8-12 12:42:01 | 显示全部楼层
我一篇小论文试验就是用arduino开发esp8266完成的
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:22:12 | 显示全部楼层
怎么说呢,这东西对入门了的比较好,或者先用这东西熟悉下,完了还是应该去学不用库怎么写,否则你永远都在学库,不是真的在学单片机
回复 支持 反对

使用道具 举报

发表于 2021-8-12 18:53:51 | 显示全部楼层
ww5223017240 发表于 2021-8-12 13:22
怎么说呢,这东西对入门了的比较好,或者先用这东西熟悉下,完了还是应该去学不用库怎么写,否则你永远都在 ...

专注造车就可以了,轮子留给专门造轮子的人。
回复 支持 反对

使用道具 举报

发表于 2021-8-12 19:53:27 | 显示全部楼层
flishmen 发表于 2021-8-12 18:53
专注造车就可以了,轮子留给专门造轮子的人。

唉……就怕现在人都是你这种想法,基础不扎实,就想着快,这种想法其实挺危险的,不过在这个快节奏社会里有时候也没办法,但是长期来说就很危险了。为啥我们芯片会被卡脖子?为啥我们没有自己的操作系统?俄罗斯人家经济总量只相当于广东省,人家都有自己的操作系统!现在的程序员基本都是在学库,真的在学底层编程的很少,别说分析linux内核了,连基本IO中断之类的都不一定会。
回复 支持 1 反对 0

使用道具 举报

发表于 2021-8-12 20:24:21 | 显示全部楼层
本帖最后由 lyy-cy 于 2021-8-12 20:25 编辑



https://github.com/search?l=C%2B%2B&q=8025&type=Repositories



要是打开慢就百度“GitHub 打开慢”


  1. #include "RX8025_RTC.h"
  2. #include <Wire.h>
  3. #include <TimeLib.h>

  4. /********************************************************************************/
  5. RX8025_RTC::RX8025_RTC(){
  6.   
  7. }

  8. bool RX8025_RTC::write(tmElements_t tm){
  9.   _year       = tmYearToCalendar(tm.Year);
  10.   _month      = tm.Month;
  11.   _day        = tm.Day;
  12.   _hour       = tm.Hour;
  13.   _minute     = tm.Minute;
  14.   _second     = tm.Second;
  15.   return _begin();  
  16. }

  17. tmElements_t RX8025_RTC::read(){
  18.   tmElements_t tm;
  19.   if(_read()){
  20.     tm.Year = CalendarYrToTm(_year);
  21.     tm.Month = _month;
  22.     tm.Day = _day;
  23.     tm.Hour = _hour;
  24.     tm.Minute = _minute;
  25.     tm.Second = _second;
  26.     return tm;
  27.   }
  28. }

  29. /********************************************************************************/
  30. bool RX8025_RTC::_begin(){
  31.   byte n;
  32.   Wire.beginTransmission(RTC8052_I2CADDR);
  33.   Wire.write(0xE0);
  34.   Wire.write(RTC8052_CFG_PULSE_ITR_SEC);  //Control 1
  35.   Wire.write(0x00);         //Control 2
  36.   Wire.endTransmission();
  37.   delay(1);

  38.   Wire.beginTransmission(RTC8052_I2CADDR);
  39.   Wire.write(0x00);
  40.   n = _toBCD(_second);
  41.   Wire.write(n);            //0:Seconds
  42.   n = _toBCD(_minute);
  43.   Wire.write(n);            //1:Minutes
  44.   n = _toBCD(_hour);
  45.   Wire.write(n);            //2:Hours
  46.   Wire.write(0x00);         //3:Weekdays
  47.   n = _toBCD(_day);
  48.   Wire.write(n);            //4:Days
  49.   n = _toBCD(_month);
  50.   Wire.write(n);            //5:Months
  51.   n = _toBCD(_year);
  52.   Wire.write(n);            //6:Years
  53.   Wire.endTransmission();
  54.   delay(1);
  55.    
  56.   Wire.beginTransmission(RTC8052_I2CADDR);
  57.   Wire.write(0x8E);
  58.   Wire.write(0x00);   //8:Alarm_W ; Minute
  59.   Wire.write(0x00);   //9:Alarm_W ; Hour
  60.   Wire.write(0x00);   //A:Alarm_W ; Weekday
  61.   Wire.write(0x00);   //B:Alarm_D ; Minute
  62.   Wire.write(0x00);   //C:Alarm_D ; Hour
  63.   Wire.endTransmission();
  64.   delay(1);
  65.   
  66.   return true;
  67. }

  68. bool RX8025_RTC::_read(){
  69.   byte years,months,days,hours,minutes,seconds;

  70.   Wire.requestFrom(RTC8052_I2CADDR, 8);
  71.   Wire.read();
  72.   seconds = Wire.read();
  73.   minutes = Wire.read();
  74.   hours = Wire.read();

  75. /**
  76.   Serial.print("debug-->");
  77.   Serial.print(hours >> 4);
  78.   Serial.print(hours & 0x0F);
  79.   Serial.print(":");  
  80.   Serial.print(minutes >> 4);
  81.   Serial.print(minutes & 0x0F);
  82.   Serial.print(":");
  83.   Serial.print(seconds >> 4);
  84.   Serial.print(seconds & 0x0F);
  85.   Serial.println("");
  86. **/

  87.   Wire.read();
  88.   days = Wire.read();
  89.   months = Wire.read();
  90.   years = Wire.read();

  91.   _year = _fromBCD(years) + 2000;
  92.   _month = _fromBCD(months);
  93.   _day = _fromBCD(days);
  94.   _hour = _fromBCD(hours);
  95.   _minute = _fromBCD(minutes);
  96.   _second = _fromBCD(seconds);

  97.   return true;
  98. }

  99. /********************************************************************************/
  100. byte RX8025_RTC::_toBCD(int i){
  101.   byte n0,n1;
  102.   n0 = i % 10;
  103.   n1 = (i /10) % 10;
  104.   return (n1 << 4) | n0;
  105. }

  106. int RX8025_RTC::_fromBCD(byte bcd){
  107.   int i0,i1;
  108.   i0 = bcd & 0x0F;
  109.   i1 = (bcd >> 4) * 10;
  110.   return i0 + i1;
  111. }

复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2021-8-12 21:29:34 | 显示全部楼层
个人精力有限,我就集中精力专门玩熟32, 其它的最多了解一下,没法试了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-13 16:10:24 | 显示全部楼层
lyy-cy 发表于 2021-8-12 20:24
https://github.com/search?l=C%2B%2B&q=8025&type=Repositories

多谢你分享的资料,等我弄出些眉目来再开贴来分享我的代码,再谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-13 16:14:51 | 显示全部楼层
inthsunshine 发表于 2021-8-12 21:29
个人精力有限,我就集中精力专门玩熟32, 其它的最多了解一下,没法试了

我弄单片机只是为了消遣,只是跟着感觉走、跟着制作走,用到啥东西就玩啥东西,都是浅尝辄止达到用途就好并没有深入学习的动力,已经过了努力学习的年龄了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-13 16:18:26 | 显示全部楼层
elecfunwb 发表于 2021-8-12 12:22
arduino现在发展为一个软件平台架构,底层支持多款MCU,不光是AVR,8266,ESP32、ARM、STM8、MSP430、51等 ...

这东西虽然支持广泛,但是编译、下载真心的慢,我感觉玩51单片机还是keil靠谱,这个太难忍耐了。
回复 支持 反对

使用道具 举报

发表于 2021-8-13 17:27:49 | 显示全部楼层
我第一次接触arduino也是8266,不过arduino也有坑爹的地方,国内的网络环境很不友好,然后就是ide太难用,推荐你了解下vscode+platformIO:titter:
回复 支持 反对

使用道具 举报

发表于 2021-8-13 21:57:57 | 显示全部楼层
慕名而来 发表于 2021-8-13 16:14
我弄单片机只是为了消遣,只是跟着感觉走、跟着制作走,用到啥东西就玩啥东西,都是浅尝辄止达到用途就好 ...

给自己弄几个复杂点的应用,钻研的积极性就会被调动起来, 实现了很有成就感

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-14 10:01:50 | 显示全部楼层
我只是为了驱动8266才尝试使用arduino的,8266驱动好了能够和STC单片机搭在一起弄个闹表啥的也就可以了,涉及互联网相关的那些知识、协议啥的我也不懂,物联网控制那些都太复杂了我也弄不动,年龄大了弄新东西费劲,另外眼睛、脖子、腰也都不太给力凑合玩玩算了。
回复 支持 反对

使用道具 举报

发表于 2021-8-15 15:41:49 | 显示全部楼层
lyy-cy 发表于 2021-8-12 20:24
https://github.com/search?l=C%2B%2B&q=8025&type=Repositories

这个库还是太简单,没有关于INT的东西。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-21 07:54 , Processed in 0.218400 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表