
Интернет-магазин «Неглупый Дом»
ACS712 периодически измеряет ток, отдаваемый солнечной панелью, а AT24C256 сохраняет эти значения — вечером можно посмотреть, как менялась выработка панели в течение дня.
#include <Wire.h>
const int sensorPin = A0;
const int EEPROM_ADDR = 0x50;
int writeIndex = 0;
const int maxEntries = 100;
void writeEntry(int index, int value) {
int addr = index * 2;
Wire.beginTransmission(EEPROM_ADDR);
Wire.write(addr >> 8);
Wire.write(addr & 0xFF);
Wire.write(value >> 8);
Wire.write(value & 0xFF);
Wire.endTransmission();
delay(5);
}
void setup() {
Wire.begin();
}
void loop() {
int raw = analogRead(sensorPin);
float voltage = (raw / 1023.0) * 5.0;
float current = (voltage - 2.5) / 0.066;
int currentMa = (int)(current * 1000);
writeEntry(writeIndex % maxEntries, currentMa);
writeIndex++;
delay(600000UL); // запись раз в 10 минут
}
Каждая запись занимает 2 байта, всего до 100 записей — при заполнении памяти запись продолжается по кругу (`% maxEntries`), затирая самые старые значения.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 297 ₽ 267 ₽ (экономия 30 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.