问题标签 [attiny]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
48 浏览

c++ - ATtiny84A 和 RFM12B 模块不适用于 RF12

我正在做一个项目,我需要在带有 RFM12B 收发器的设备之间发送一些数据。我将 RF12 库与 pingPong 示例一起使用——没有任何修改。

我的微控制器是ATTiny84A,接线可以在这里看到

我的问题是它根本不起作用。初始化似乎工作。前几秒 rf12_canSend() 也返回 true,但之后返回 false。我的猜测是它开始发送一些数据,但由于某种原因它不能。我不知道问题是什么,但我唯一的猜测是它没有使用正确的引脚,但我遵循了这个例子。

忽略 LED,它用于测试。

0 投票
1 回答
1100 浏览

arduino - ATtiny84a 和 RFM12b 问题

我正在尝试使用适用于 arduino 的 Jeelib 库来设置 attiny84a 和 RFM12b。它与 arduino 完美配合,但不适用于 ATTiny。我们是 3 个人试图在没有运气的情况下解决问题树天。

我们可以轻松地将软件上传到tiny。没问题。一切似乎都很好,只是我们无法发送和接收数据。我们目前正在使用终端 6 (PA7) 上的闪烁二极管进行调试,并且我们正在使用 init 方法完成,但好像我们没有比这更进一步。

这是Arduino UNO图纸的图纸 Arduino UNO RFM12B在此处输入图像描述

这是ATTiny的图纸。不要介意小号的错误名称。1 号航站楼从右上角开始。

阁楼84a RFM12B在此处输入图像描述

我们试图改变味噌莫西线(绿色)的服务时间。尝试使用和不使用 Slave Select(黄色)和许多其他东西。

我的问题是:我们错过了什么吗?图片上的接线正常吗?

0 投票
1 回答
521 浏览

arduino - I2C 在 Arduino 发出 7 个请求后停止传输

我正在使用运行 TinyWire 库的 ATtiny85 从 I2C 连接与运行 Wire 库的 Arduino Uno 通信。对于我想要的任意数量的请求,我可以一次传输一个字节,但是当我尝试一次发送两个字节时会出现问题。下面是我正在使用的代码(注意 - 我使用的是 TinyWire 库的流行修改版本,它实现了 OnRequest 方法)。这是我的奴隶代码:

对于主人:

不管延迟时间长短,我总是只能得到 7 个请求。我尝试了许多值,从没有延迟到通话之间的 5 秒延迟。如果我关闭 ATTiny 电源,然后在 Uno 仍然连接到串行端口时再次供电,我可以在再次停止之前再收到 7 个请求。串行监视器总是显示 Uno 的主循环在调用 requestFrom() 后以某种方式直接暂停,这让我看起来像是在等待什么,但我不知道是什么。当我拔下 ATTiny 时,Uno 会打印到串行端口 -28412。在从缓冲区读取之前,我也尝试过放置以下内容:

谢谢你的帮助。

0 投票
1 回答
317 浏览

compilation - shiftPWM 和 ATtiny85 错误

我在这一点上迷路了,不胜感激!我从旧的 GitHub 下载了这个库,但我什至无法编译它。

0 投票
1 回答
2524 浏览

attiny - ATtiny85 上的模拟输入不起作用?

编辑:已解决

正如标题一样,我无法让 ATTiny85 上的任何模拟输入从 POT 中读取。为了调试和测试,它目前连接到一个带有 8 个 LED 的移位寄存器。仅输出 int 值时,此设置工作正常。在这一点上,我有点失落。

我对ATTiny的经验很少,所以我打赌它很傻。POT 与 +5VDC 的一侧和模拟读取引脚上的中心抽头相连。

0 投票
1 回答
885 浏览

arduino - NRF24L01 与 ATtiny 和 Uno 未连接

我有一个 ATtiny85 使用此接线图连接到 NRF24L01+ 模块:。ATtiny85 定期进出睡眠,以向接收器 Arduino Uno 发送一些值。如果 ATTiny 使用 Arduino 电源 (3.3v),一切正常。当我从提供大约 3v 的单独 CR2032 纽扣电池上运行 ATTiny 时,Arduino 永远不会收到任何数据。我有一个连接到 ATTiny 的状态 LED,以确保 ATTiny 正确唤醒,就是这样。这是两者的代码:

编辑:将它连接到不是来自 Uno 的外部 3.3v 使一切正常 - 为什么纽扣电池的电压不能工作?我认为所有东西的额定电压都低于 2.8v,即 CR2032 的最小值。

附件代码

收货人代码

这里的问题是ATTiny和Uno需要同时打开才能建立连接,还是与电池有关,或者完全是其他什么?任何帮助,将不胜感激。

0 投票
2 回答
2318 浏览

serial-port - 两个attiny 85 IC之间的主从通信

两个 ATtiny85 之间可以通信吗?我可以使用我的 Arduino 与 ATtiny85 进行通信,将 Arduino Uno 用作主机,将 ATtiny85 用作从机。但我想用一台 ATtiny85 作为主机,一台作为从机。这可能吗 ?

我无法理解 TinyWireM 库中给出的示例。我想要一个简单的主从代码进行通信。例如,master 应该要求 1 个整数值,slave 应该回复。


我的奴隶代码:

我的主代码

我尝试了上面的代码,但仍然看不到 LED 闪烁。但是,如果我保持从属代码不变并在 Arduino 上使用以下主代码,那么一切正常。

Arduino Uno 代码作为主控。

连接是,连接是 SDA 到 SCL 引脚

主 attiny85 的引脚 5 - 从属 attiny85 的引脚 7 从属 attiny85 的引脚 7 - 主 attiny85 的引脚 5

我也尝试过不交叉连接它们。示例和连接是 SDA 到 SDA 引脚

主阁楼 85 的插针 5 - 从阁楼 85 的插针 5 从阁楼 85 的插针 7 - 主阁楼 85 的插脚 7

但仍然没有成功。

0 投票
1 回答
1552 浏览

microcontroller - Attiny13 时钟频率和 ADC

我正在使用由 arduino UNO 通过 SPI 编程的 Attiny13 AVR。

我找到了 attiny13 的核心,boards.txt 文件的内容如下;

当我对 attiny13 进行编程时,我选择“Attiny 13A Standalone 9.6Mhz”作为目标板。

所以,我希望它以 9.6Mhz 运行。

我将 TCCR0B 寄存器设置如下以获得“无预分频”

还可以通过更改 TCCR0A 寄存器将 PWM 模式设置为“快速 PWM”。

通过这些设置,我应该得到 9.6Mhz/256 = 37.5 Khz PWM 频率。但是,当我将 PWM 的输出连接到用于驱动和 LED 灯条的 MOSFET 时,我会听到 MOSFET 发出的嗡嗡声。

这促使我认为我的时钟没有以 9.6Mhz 运行,因为 37.5Khz 不是可听频率。

因此,我又快速搜索了时钟频率的主题,并找到了以下网页;

https://www.avrprogrammers.com/howto/sysclk-prescaler

如果我没记错的话,这个页面说我的时钟频率默认是 8 分频。

为了能够得到除数,我需要重置所有位。

我这样做并重置了所有 CLKPS 位。

所以,理论上,我应该得到 9.6Mhz 时钟频率,除数为 1。

当我使用所有上述设置时,我不再听到嗡嗡声。

然而,这一次又出现了一个问题。

我使用电位器来控制亮度。将时钟除数设置为“1”时,电位器的行为发生了变化。当我转动电位器时,模拟输入没有立即读取值,所以我需要再转动一点以获得最小亮度,并在我到达电位器的另一端之前达到最大亮度。所以,我认为ADC有问题。

在模数转换器标题下,我找到了以下信息;

默认情况下,逐次逼近电路需要 50 kHz 到 200 kHz 之间的输入时钟频率才能获得最大分辨率。如果需要低于 10 位的分辨率,则 ADC 的输入时钟频率可以高于 200 kHz 以获得更高的采样率。

所以,我的时钟频率是 9.6Mhz,我需要为 ADCSRA 寄存器设置一个介于 9.6Mhz/20Khz= 48 和 9.6Mhz/50Khz = 192 之间的预分频器。我选择了 128 的分频因子,这需要设置所有三位 ADPS2、ADPS1 和 ADPS0。

这应该设置所有三位并将 ADC 的频率保持在 50Khz - 200Khz 之间。

但是,我仍然从电位器中得到相同的行为。

我哪里错了?

0 投票
2 回答
8242 浏览

arduino - ATtiny85 eeprom 在 arduino IDE 中写入

我有一个问题:我可以从我的阁楼读取 EEPROM,但我不能在里面写东西。

这是我的代码:

编辑

现在我的写代码是:

我的阅读代码:

我总是只得到 255 的价值。在每个地址上。现在我将我的 int 转换为字节。在我的情况下,我的 int 不会超过 255。

顺便说一句:我可以创建一个 int 作为字节吗?所以我可以像普通的int一样使用它,但是可以直接写吗?

0 投票
1 回答
1067 浏览

arduino - Attiny85 EEPROM 擦除,断电后

如果我打开电源,我的 Attiny85 会丢失整个 EEPROM 数据。我使用 Arduino IDE,我确定 EEPROM 是写的,因为我得到了串行反馈。这是我的代码:

谢谢 :)