Илья Скоров
Ученик
(194)
6 дней назад
#include <Arduino.h>
// Пины для ленты и кнопки
const int redPin = 9; // Пин для красного цвета (D9)
const int greenPin = 6; // Пин для зеленого цвета (D6)
const int bluePin = 5; // Пин для синего цвета (D5)
const int buttonPin = 2; // Пин для кнопки (D2)
// Длительность нажатия кнопки (в миллисекундах)
const int longPressDuration = 1000;
// Переменная для хранения состояния кнопки
bool buttonState = false;
unsigned long lastButtonPress = 0;
void setup() {
// Настройка пинов ленты на выход
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
// Настройка пина кнопки на вход
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// Чтение состояния кнопки
bool currentButtonState = digitalRead(buttonPin);
// Проверка нажатия кнопки
if (currentButtonState == LOW && buttonState == false) {
buttonState = true;
lastButtonPress = millis();
}
// Проверка длительного нажатия кнопки
if (buttonState == true && millis() - lastButtonPress > longPressDuration) {
// Изменение цвета ленты (например, зеленый)
analogWrite(greenPin, 255);
analogWrite(redPin, 0);
analogWrite(bluePin, 0);
buttonState = false;
}
// Проверка отпускания кнопки
if (currentButtonState == HIGH && buttonState == true) {
// Изменение цвета ленты (например, синий)
analogWrite(bluePin, 255);
analogWrite(redPin, 0);
analogWrite(greenPin, 0);
buttonState = false;
}
}
#include <Arduino.h>
// Пины для ленты и кнопки
const int ledPin = 6; // Пины для управления лентой (D6, D5, D4)
const int buttonPin = 2; // Пин для кнопки (D2)
// Цвета для ленты
const int red = 255;
const int green = 0;
const int blue = 0;
// Длительность нажатия кнопки (в миллисекундах)
const int longPressDuration = 1000;
// Переменная для хранения состояния кнопки
bool buttonState = false;
unsigned long lastButtonPress = 0;
void setup() {
// Настройка пина ленты на выход
pinMode(ledPin, OUTPUT);
// Настройка пина кнопки на вход
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// Чтение состояния кнопки
bool currentButtonState = digitalRead(buttonPin);
// Проверка нажатия кнопки
if (currentButtonState == LOW && buttonState == false) {
buttonState = true;
lastButtonPress = millis();
}
// Проверка длительного нажатия кнопки
if (buttonState == true && millis() - lastButtonPress > longPressDuration) {
// Изменение цвета ленты
analogWrite(ledPin, green);
buttonState = false;
}
// Проверка отпускания кнопки
if (currentButtonState == HIGH && buttonState == true) {
// Изменение цвета ленты
analogWrite(ledPin, blue);
buttonState = false;
}
// Обновление состояния кнопки
buttonState = currentButtonState;
}