[PIC®/AVR®/dsPIC®产品] 对 Arduino 感兴趣的这边看。

[复制链接]
 楼主| MianQi 发表于 2022-10-24 18:39 | 显示全部楼层
主机端的程序是这样:
  1. // Include Arduino Wire library for I2C
  2. #include <Wire.h>

  3. // Define Slave I2C Address
  4. #define SLAVE_ADDR 9

  5. // Analog pin for potentiometer
  6. int analogPin = 0;
  7. // Integer to hold potentiometer value
  8. int val = 0;

  9. void setup() {

  10.   // Initialize I2C communications as Master
  11.   Wire.begin();
  12.   
  13. }

  14. void loop() {
  15.   delay(50);
  16.   
  17.   // Read pot value
  18.   // Map to range of 1-255 for flash rate
  19.     val = map(analogRead(analogPin), 0, 1023, 255, 1);
  20.    
  21.   // Write a charatre to the Slave
  22.   Wire.beginTransmission(SLAVE_ADDR);
  23.   Wire.write(val);
  24.   Wire.endTransmission();
  25. }
 楼主| MianQi 发表于 2022-10-24 18:41 | 显示全部楼层
从机端的程序是这样:
  1. // Include Arduino Wire library for I2C
  2. #include <Wire.h>

  3. // Define Slave I2C Address
  4. #define SLAVE_ADDR 9

  5. // Define LED Pin
  6. int LED = 13;

  7. // Variable for received data
  8. int rd;

  9. // Variable for blink rate
  10. int br;

  11. void setup() {

  12.   pinMode(LED, OUTPUT);
  13.   
  14.   // Initialize I2C communications as Slave
  15.   Wire.begin(SLAVE_ADDR);
  16.    
  17.   // Function to run when data received from master
  18.   Wire.onReceive(receiveEvent);
  19.   
  20.   // Setup Serial Monitor
  21.   Serial.begin(9600);
  22.   Serial.println("I2C Slave Demonstration");
  23. }


  24. void receiveEvent() {
  25.   // read one character from the I2C
  26.   rd = Wire.read();
  27.   // Print value of incoming data
  28.   Serial.println(rd);
  29.    
  30. }
  31. void loop() {
  32.    delay(50);

  33.   // Calculate blink value
  34.   br = map(rd, 1, 255, 100, 2000);

  35.   digitalWrite(LED, HIGH);
  36.   delay(br);
  37.   digitalWrite(LED, LOW);
  38.   delay(br);
  39. }
Bowclad 发表于 2022-11-2 20:16 | 显示全部楼层
arduino很方便但是封装的太好了想改个端口都很麻烦
 楼主| MianQi 发表于 2022-11-3 08:46 | 显示全部楼层
Bowclad 发表于 2022-11-2 20:16
arduino很方便但是封装的太好了想改个端口都很麻烦

“改端口” ?
Jacquetry 发表于 2022-11-4 19:51 | 显示全部楼层
这是用的哪款芯片啊?
 楼主| MianQi 发表于 2022-11-5 08:47 | 显示全部楼层
Jacquetry 发表于 2022-11-4 19:51
这是用的哪款芯片啊?

ATmega328p。
 楼主| MianQi 发表于 2023-4-11 09:13 | 显示全部楼层
本帖最后由 MianQi 于 2023-4-11 09:15 编辑
MianQi 发表于 2022-10-24 18:41
从机端的程序是这样:

同样的项目,用标准 C 来写,就比较复杂,非初学者所能,详细的说明在这里:
lesson12 - ATmega328P - avr-libc - ADC - Ring Buffer - USART - https://www.bilibili.com/video/BV1tL41127fV/?vd_source=a78c86ab025bf795ccfaa5b6c3e0f480
pzsh 发表于 2023-4-18 15:17 | 显示全部楼层
视频介绍的比较清楚
abotomson 发表于 2023-5-10 20:24 | 显示全部楼层
Arduino都有哪些接口?              
houjiakai 发表于 2023-5-11 17:20 | 显示全部楼层
Arduino单片机有很多接口,用于连接各种传感器、执行器以及其他外部设备。
burgessmaggie 发表于 2023-5-11 18:07 | 显示全部楼层
arduino单片机上模拟口a0到a5的区别
minzisc 发表于 2023-5-11 18:45 | 显示全部楼层
AVR单片机的性能和运行速度也比51单片机高很多
albertaabbot 发表于 2023-5-11 19:09 | 显示全部楼层
Arduino单片机可以通过各种方式与其他设备交互,从而实现各种应用场景。
lzbf 发表于 2023-5-11 19:26 | 显示全部楼层
Arduino的硬件价格相对较低,尤其是与其他单片机相比,因为它使用常见的Atmel AVR微控制器,而且有许多廉价的克隆品。
mmbs 发表于 2023-5-11 19:40 | 显示全部楼层
Arduino单片机是一种易学易用、低成本、开放性强、资源丰富并且应用广泛的电子原型平台。

评论

“低成本、开放性强、资源丰富并且应用广泛的电子原型平台”,所言不虚。但是“易学易用”要看用户定什么样的目标和标准,实际上 Arduino 要想深究,很快就会变得复杂起来,对于初学者来说“易学易用”,是因为要大量的行家做了很对基础性的铺垫工作,将陡峭的学习曲线变成了漫长的缓坡。  发表于 2023-5-17 09:40
cashrwood 发表于 2023-5-11 19:51 | 显示全部楼层
有许多文档、教程、在线论坛和社交网络等资源可供选择。这些资源可以帮助用户快速解决问题,提高开发效率。

评论

这正是 Arduino 之所以成为 Arduino 的本质原因——它让很多愿意的分享的专家在这里找到了自己的位置。  发表于 2023-5-17 09:42
burgessmaggie 发表于 2023-5-11 20:07 | 显示全部楼层
Arduino软件语言仅仅需掌握少数几个指令,而且指令的可读性也强,稍微懂一点C语言即可,轻松上手,快速应用。
eefas 发表于 2023-5-11 21:00 | 显示全部楼层
Arduino很适合用于各种应用场景,例如智能家居、机器人、传感器网络、艺术和设计等。由于它易于使用和配置,因此可以满足不同用户的需求。
juliestephen 发表于 2023-5-11 21:22 | 显示全部楼层
Arduino硬件的成本相对较低,适合用于学习
xiaoyaodz 发表于 2023-5-11 21:28 | 显示全部楼层
rduino 集成了很多开发的库 相对一般单片机开发速度要快,适合学习和创客demo阶段使用

评论

“demo” 正是 Arduino 的强项——尽快展示设计原型和思路。  发表于 2023-5-17 09:44
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部