Attiny85 SoftwareSerial не работает от батареи

У меня есть очень небольшой тестовый проект, работающий на Attiny85 (внутренняя частота 8 МГц).

Все работает при питании схемы от Arduino (3,3 или 5,0 вольт). Но при изменении питания на батарею 18650 с напряжением около 4,0 В Attiny85 все еще работает, потому что светодиод мигает, но через UART ничего не проходит. В чем может быть причина этого?

#include <SendOnlySoftwareSerial.h>
#define PHOTO_RESISTOR_PIN A1
#define UART_TX_PIN 0
#define LED_PIN 1

SendOnlySoftwareSerial esp(UART_TX_PIN);

void setup() {
  esp.begin(9600);
  pinMode(PHOTO_RESISTOR_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  pinMode(UART_TX_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  int light = analogRead(PHOTO_RESISTOR_PIN);
  esp.println(light);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

схема

, 👍0

Обсуждение

Разве у вас нет заземления цепи ATTiny, подключенной к заземлению платы UART???, @Majenko

Вот оно! Итак, причина, по которой это работает при отключении питания Arduino, заключается в том, что они имеют одну и ту же землю в компьютере (которая питает их обоих)?, @miccet

Ага. Вы можете прочитать это: https://majenko.co.uk/blog/importance-sharing-grounds, @Majenko

Абсолютно, спасибо!, @miccet


1 ответ


Лучший ответ:

2

Если вы не соедините землю вашего ATTiny с землей вашего интерфейса USB UART, у электронов не будет цепи для обтекания.

Он работает при питании от компьютера, потому что все подключено к одному и тому же заземлению.

,