打印
[PIC®/AVR®/dsPIC®产品]

对 Arduino 感兴趣的这边看。

[复制链接]
楼主: MianQi
手机看帖
扫描二维码
随时随地手机跟帖
41
MianQi|  楼主 | 2022-10-24 18:39 | 只看该作者 回帖奖励 |倒序浏览
主机端的程序是这样:
// Include Arduino Wire library for I2C
#include <Wire.h>

// Define Slave I2C Address
#define SLAVE_ADDR 9

// Analog pin for potentiometer
int analogPin = 0;
// Integer to hold potentiometer value
int val = 0;

void setup() {

  // Initialize I2C communications as Master
  Wire.begin();
  
}

void loop() {
  delay(50);
  
  // Read pot value
  // Map to range of 1-255 for flash rate
    val = map(analogRead(analogPin), 0, 1023, 255, 1);
   
  // Write a charatre to the Slave
  Wire.beginTransmission(SLAVE_ADDR);
  Wire.write(val);
  Wire.endTransmission();
}

使用特权

评论回复
42
MianQi|  楼主 | 2022-10-24 18:41 | 只看该作者
从机端的程序是这样:
// Include Arduino Wire library for I2C
#include <Wire.h>

// Define Slave I2C Address
#define SLAVE_ADDR 9

// Define LED Pin
int LED = 13;

// Variable for received data
int rd;

// Variable for blink rate
int br;

void setup() {

  pinMode(LED, OUTPUT);
  
  // Initialize I2C communications as Slave
  Wire.begin(SLAVE_ADDR);
   
  // Function to run when data received from master
  Wire.onReceive(receiveEvent);
  
  // Setup Serial Monitor
  Serial.begin(9600);
  Serial.println("I2C Slave Demonstration");
}


void receiveEvent() {
  // read one character from the I2C
  rd = Wire.read();
  // Print value of incoming data
  Serial.println(rd);
   
}
void loop() {
   delay(50);

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

  digitalWrite(LED, HIGH);
  delay(br);
  digitalWrite(LED, LOW);
  delay(br);
}

使用特权

评论回复
43
Bowclad| | 2022-11-2 20:16 | 只看该作者
arduino很方便但是封装的太好了想改个端口都很麻烦

使用特权

评论回复
44
MianQi|  楼主 | 2022-11-3 08:46 | 只看该作者
Bowclad 发表于 2022-11-2 20:16
arduino很方便但是封装的太好了想改个端口都很麻烦

“改端口” ?

使用特权

评论回复
45
Jacquetry| | 2022-11-4 19:51 | 只看该作者
这是用的哪款芯片啊?

使用特权

评论回复
46
MianQi|  楼主 | 2022-11-5 08:47 | 只看该作者
Jacquetry 发表于 2022-11-4 19:51
这是用的哪款芯片啊?

ATmega328p。

使用特权

评论回复
47
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

使用特权

评论回复
48
pzsh| | 2023-4-18 15:17 | 只看该作者
视频介绍的比较清楚

使用特权

评论回复
49
abotomson| | 2023-5-10 20:24 | 只看该作者
Arduino都有哪些接口?              

使用特权

评论回复
50
houjiakai| | 2023-5-11 17:20 | 只看该作者
Arduino单片机有很多接口,用于连接各种传感器、执行器以及其他外部设备。

使用特权

评论回复
51
burgessmaggie| | 2023-5-11 18:07 | 只看该作者
arduino单片机上模拟口a0到a5的区别

使用特权

评论回复
52
minzisc| | 2023-5-11 18:45 | 只看该作者
AVR单片机的性能和运行速度也比51单片机高很多

使用特权

评论回复
53
albertaabbot| | 2023-5-11 19:09 | 只看该作者
Arduino单片机可以通过各种方式与其他设备交互,从而实现各种应用场景。

使用特权

评论回复
54
lzbf| | 2023-5-11 19:26 | 只看该作者
Arduino的硬件价格相对较低,尤其是与其他单片机相比,因为它使用常见的Atmel AVR微控制器,而且有许多廉价的克隆品。

使用特权

评论回复
55
mmbs| | 2023-5-11 19:40 | 只看该作者
Arduino单片机是一种易学易用、低成本、开放性强、资源丰富并且应用广泛的电子原型平台。

使用特权

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

使用特权

评论回复
评论
MianQi 2023-5-17 09:42 回复TA
这正是 Arduino 之所以成为 Arduino 的本质原因——它让很多愿意的分享的专家在这里找到了自己的位置。 
57
burgessmaggie| | 2023-5-11 20:07 | 只看该作者
Arduino软件语言仅仅需掌握少数几个指令,而且指令的可读性也强,稍微懂一点C语言即可,轻松上手,快速应用。

使用特权

评论回复
58
eefas| | 2023-5-11 21:00 | 只看该作者
Arduino很适合用于各种应用场景,例如智能家居、机器人、传感器网络、艺术和设计等。由于它易于使用和配置,因此可以满足不同用户的需求。

使用特权

评论回复
59
juliestephen| | 2023-5-11 21:22 | 只看该作者
Arduino硬件的成本相对较低,适合用于学习

使用特权

评论回复
60
xiaoyaodz| | 2023-5-11 21:28 | 只看该作者
rduino 集成了很多开发的库 相对一般单片机开发速度要快,适合学习和创客demo阶段使用

使用特权

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

本版积分规则