Attiny85 Clone Не может установить значение P1 для ввода

Все, что я читал о китайских клонах Digispark attiny85, говорит о том, что вы можете использовать p0-5 в качестве цифрового ввода-вывода (p5 как после сброса предохранителя)

Простой тестовый код для кнопки не позволит мне использовать P1 в качестве входных данных, привязанных к простой кнопке.

Приведенный ниже код работает на p0, p2, p5, но прерывает только светодиод, для которого установлено значение on, на P1.

#include "DigiKeyboard.h"

//контакты 3 и 4, используемые для подключения по USB
bool buttonState1 = 0;

void setup() {
  pinMode(1, INPUT);
  digitalWrite(1, HIGH); //включить подтягивающий резистор
}

void loop() {

  
    if (digitalRead(1)!= buttonState1){
      buttonState1 = digitalRead(1);
      if (buttonState1 == LOW)DigiKeyboard.print("test1");
    }

}

, 👍0


1 ответ


2

Я быстро просмотрел схемы платы digisparc. P1 подключается к GND через светодиод и резистор. Если вы включите ПОДТЯГИВАЮЩИЙ резистор для P1, светодиод должен загореться, и напряжение на P1 будет очень низким (это зависит от делителя напряжения, который построен из подтягивающего резистора и светодиодного резистора); поэтому показания P1 должны быть НИЗКИМИ. Если вы подключили кнопку к GND и нажали на нее, напряжение на P1 упадет до 0. Но это не влияет на НИЗКОЕ состояние. Программа не реагирует. Светодиод гаснет, потому что он больше не питается.

Вы можете попробовать подключить кнопку к +5 В и не настраивать подтягивающий резистор для P1. Если вы нажмете на кнопку, должен загореться светодиод, а на P1 должно быть +5V. Он должен изменить свое состояние с высокого на низкое. (Я этого не пробовал; но я не вижу причин, почему это не сработало бы).

,