Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
У вас когда-нибудь возникала такая проблема, что когда вы идете по улице, неся что-то тяжелое (например, продукты), и мимо проходит женщина, которой вы хотите дать чаевые своей шляпе, чтобы поприветствовать ее, но если вы это сделаете, вы упадете что вы несете? Я тоже, но если вы это сделаете, вот простое, но элегантное решение этой проблемы.
Шаг 1: материалы
- Контроллер Arduino
- Серводвигатель
- кнопочный переключатель
- Резистор 10кОм - коричнево-чёрно-оранжевый
- Достаточное количество проводов вашей длины
Шаг 2: Подключения с помощью кнопки
- Черный провод на схеме соединяет контакт 1 переключателя (с левой стороны) с контактом GND на Arduino.
- Желтый провод на схеме соединяет контакт 2 переключателя (с правой стороны) с контактом 8 на Arduino.
- Подключите резистор 10 кОм (коричневый-черный-оранжевый) к контакту 2 (правая сторона), а другой контакт - к контакту 3,3 В на Arduino.
Шаг 3: Подключение серводвигателя
- Белый провод (желтый на схеме) подключен от сигнального контакта серводвигателя к контакту ~ 9 Arduino.
- Красный провод подключен от сигнального контакта серводвигателя к контакту 5V Arduino.
- Желтый провод (черный на схеме) подключен от заземляющего контакта серводвигателя к контакту GND Arduino.
Шаг 4: Присоединение серводвигателя
- Я вырезал несколько колец карандашом, чтобы привязать его к вращающейся части серводвигателя. Для этого можно было использовать скобу, но я обнаружил, что привязать ее веревкой было немного более надежно и крепко.
- Другой конец карандаша должен быть прикреплен к шляпе сзади. Я протолкнула скрепку через край шляпы и согнула ее, придав ей форму, чтобы карандаш держался на месте.
- Сам двигатель должен быть прикреплен к пластине (или чему-то еще, что может лежать на вашей голове, не слишком сильно двигаясь), что я не упомянул на картинке для ясности.
Шаг 5: Код
#включают;
// вывод кнопки
const int buttonPin = 8;
// серво штифт
const int servoPin = 9;
Серво сервопривод;
// создаем переменную для хранения счетчика и устанавливаем ее на 0
int counter = 0;
установка void ()
{
серво.аттач (сервопин);
// Устанавливаем контакты кнопки как вход:
pinMode (buttonPin, ВВОД);
}
пустой цикл ()
{
// локальная переменная для хранения состояний кнопок
int buttonState;
// считываем цифровое состояние buttonPin с помощью функции digitalRead () и сохраняем значение в переменной buttonState buttonState = digitalRead (buttonPin);
// если кнопка нажата, увеличиваем счетчик и немного подождем, чтобы дать нам время отпустить кнопку
если (buttonState == LOW)
// зажигаем светодиод
{
счетчик ++; задержка (150);
}
если (счетчик == 0)
серво. запись (20);
// ноль градусов
иначе если (counter == 1)
серво. запись (80);
// иначе сбрасываем счетчик на 0, что сбрасывает сервопривод на 0 градусов
еще
счетчик = 0;
}
Шаг 6: прячем электронику
- Чтобы конструкция казалась более незаметной, можно засунуть ардуино и пластину с кнопкой в небольшую коробку (например, пачку сигарет или коробку с карточкой) и проделать в ней дырку. Так вы сможете держать конструкцию на виду, не вызывая подозрений, что происходит что-то еще.