Arduino UNO С Переключателем Модуля Вкл / Выкл + Совет По Батарее
Так что у меня есть следующие подключенные и программирование работает нормально при подключении по USB
Части
- 1 Arduino UNO
- 1 Лазерный модуль (КЛЮЧИ)
- 1 Модуль перекидного переключателя (стандартный 3-контактный)
- 2 Вариационные двигатели (КЛЮЧИ)
- 1 Динамик Модуль (БОЛЬШОЙ ДИНАМИК МОДУЛЬ)
- 2 Кнопочных модуля (стандартный 3-контактный)
- 1 Модуль считывателя SD-карт (общий)
- 1 3V 1800 amh Аккумулятор
Задача 1 Я хочу сделать переключатель включения/выключения, но он не работает.
Батарея Питает Arduino Следующим Образом: (РАБОТАЕТ)
https://postimg.cc/JHmTwFKc
Батарея Питает Arduino Следующим Образом: (НЕ РАБОТАЕТ)
https://postimg.cc/V0RKzFVy
ПРОБЛЕМА 1: Почему это не работает, когда это делает для Нано у меня здесь:
https://postimg.cc/SnXHfwPJ
Во-вторых, вот некоторые фотографии установки, которые у меня есть
Батарея - Коромысло
https://postimg.cc/KK6qfjMW
Rocker - Arduino
https://postimg.cc/hXH6y2FM
https://postimg.cc/4HJrvnCg
Широкий Обзор Проекта
https://postimg.cc/3WY5Qfkc
Проблема 2 Мне нужен совет о том,какой размер батареи использовать в проекте в течение 1-2 часов,я думаю, что мне нужно (5в, 7в, 9в), но я хотел бы получить некоторую помощь с тем, что лучше всего подходит или какие-либо предложения у вас есть
То что я думаю но мне нужна помощь
- Проводка неправильная (но я все это проверил, и она работает нормально).
- Коромысловый модуль передает 3 В на UNO (недостаточно мощности).
- Батарея недостаточно мощная (мне нужна батарея побольше).
- Проблемы НУБА как его мой первый проект
В чем мне нужна помощь
- Какую батарею использовать?
- Включение/выключение выключателя
Спасибо за ПОМОЩЬ!!!
БОНУС Вот используемый код:
#include <pcmConfig.h>
#include <pcmRF.h>
#include <TMRpcm.h>
#include <SPI.h>
#include <SD.h>
//SD card pin
#define SD_ChipSelectPin 10
//soundplayer object
TMRpcm tmrpcm;
int led = 13;
//pin numbers
int buttonpin = 3;
int lazerpin = 4;
int buttonpin2 = 5;
int motorPin = 6;
int motorPin2 = 7;
//other values
int t = 0;
int val;
int val2;
int ammoUsed = 0;
int prestate = 0;
int prestate2 = 1;
int canReload = 0;
void setup()
{
//pin modes
pinMode(led, OUTPUT);
pinMode(lazerpin, OUTPUT);
pinMode(buttonpin, INPUT);
pinMode(buttonpin2, INPUT);
pinMode(motorPin, OUTPUT);
pinMode(motorPin2, OUTPUT);
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin))
{
return;
}
else {
//setup sound
tmrpcm.speakerPin = 9;
tmrpcm.quality(1);
tmrpcm.setVolume(5);
//play setup sound (user knows the gun is ready)
playSound(0);
tmrpcm.disable();
tmrpcm.stopPlayback();
}
}
//method to call sounds depending on the input
void playSound(int t) {
tmrpcm.disable();
tmrpcm.stopPlayback();
if (t == 0) {
tmrpcm.setVolume(5);
tmrpcm.play("0.wav");
delay(2980); //time of clip
}
else if (t == 1) {
tmrpcm.setVolume(6);
tmrpcm.play("1.wav");
delay(660); //time of clip
}
else if (t == 2) {
tmrpcm.setVolume(5);
tmrpcm.play("2.wav");
delay(950); //time of clip
}
else if (t == 3) {
tmrpcm.setVolume(6);
tmrpcm.play("3.wav");
delay(620); //time of clip
}
else if (t == 4) {
tmrpcm.setVolume(5);
tmrpcm.play("4.wav");
delay(660); //time of clip
}
tmrpcm.disable();
tmrpcm.stopPlayback();
return;
}
void loop()
{
val = digitalRead(buttonpin); // check the state of the button
val2 = digitalRead(buttonpin2); // check the state of the button
//reload gun
if (val2 == HIGH && prestate2 == 0 && canReload == 1)
{
//reset ammo and play sound with vibrate
ammoUsed = 0;
canReload = 0;
digitalWrite(motorPin, HIGH); //vibrate
digitalWrite(motorPin2, HIGH); //vibrate
playSound(3);
digitalWrite(motorPin, LOW); //stop vibrating
digitalWrite(motorPin2, LOW); //stop vibrating
prestate2 = 1;
}
else if (val2 == LOW)
{
//reload let go
prestate2 = 0;
}
//Shooting the gun 1-4 normal. 5 is louder and longer.
if (val == LOW) // if button is pressed, turn LED on
{
digitalWrite(lazerpin, LOW);
digitalWrite(led, LOW);
prestate = 0;
}
else if (val == HIGH && prestate == 0)
{
if (ammoUsed != 5)
{
ammoUsed ++;
if (ammoUsed > 0) {
canReload = 1;
}
else {
canReload = 0;
}
//turn on lazer and virbate
digitalWrite(lazerpin, HIGH);
digitalWrite(led, HIGH);
digitalWrite(motorPin, HIGH); //vibrate
digitalWrite(motorPin2, HIGH); //vibrate
//play sound
if (ammoUsed == 5) {
playSound(2);
}
else {
playSound(1);
}
//after sound lazer and vibrate turn off
digitalWrite(motorPin, LOW); //stop vibrating
digitalWrite(motorPin2, LOW); //stop vibrating
digitalWrite(lazerpin, LOW);
digitalWrite(led, LOW);
prestate = 1;
}
else {
//no ammo just vibrate and play sound with no lazer
digitalWrite(motorPin, HIGH); //vibrate
digitalWrite(motorPin2, HIGH); //vibrate
playSound(4);
canReload = 1;
digitalWrite(motorPin, LOW); //stop vibrating
digitalWrite(motorPin2, LOW); //stop vibrating
prestate = 1;
}
}
}
@Davinco, 👍1
Обсуждение1 ответ
Лучший ответ:
Итак, вот сделка (я вроде как решил ее), поэтому я разобрал батарейный блок 9 В с флип-переключателем в нем..... припаял к нему несколько проводов, и теперь он отлично работает...... ха-ха
но я все равно хотел бы знать причину, по которой модуль перекидного переключателя не работает.
единственное, что я могу придумать, это напряжение или усилитель, передаваемое от модуля переключателя, недостаточно для питания платы (как я пробовал 3 разных перекидных переключателя и все действовали одинаково).
Спасибо за помощь
- Нужна помощь с программой для кнопки смены отображения на OLED-дисплее
- Схема управления питанием
- Узнать статус, подключен ли коммутатор к arduino или нет?
- Определение того, была ли нажата и отпущена кнопка
- Хорошая кнопка debouncing/Библиотека StateChange
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Управлять двигателем с помощью кнопки
Пожалуйста, перейдите по ссылке на продукт switch, который вы использовали. Изображения здесь недостаточно. Мы хотели бы знать, как плата использует коммутатор. Это просто разъемная плата для 3 контактов переключателя или на ней есть другая электроника? Также, пожалуйста, размещайте изображения непосредственно в вопросе, а не на внешнем сайте. И некоторые изображения не в фокусе или довольно темные. Пожалуйста, предоставьте хорошие снимки в фокусе, чтобы мы действительно могли что-то увидеть в них, @chrisl
Хороший начальный проект, вам нужно понять, как работает переключатель, ваш первый не работает, у вас короткое замыкание батареи, она разряжается очень быстро. Вам нужно только два подключения к коммутатору. Запустите с нуля, батарея подключена к центральному контакту, а arduino-к нулевому контакту. Дайте нам знать, если это сработает. Вы можете просмотреть несколько основных руководств по электронике, которые помогут вам. Помни, мы все начинали с того же места, что и ты. Самое главное, получайте удовольствие!, @Gil
https://www.geekbuying.com/item/Arduino-2-Mode-Rocker-Button-Switch-Module-Compatible-With-RPi-STM32-343528.html это тот самый рокер, @Davinco
могу подтвердить, что это определенно 2-режимная качалка, которая неверна.......... как я только что попробовал это с помощью кнопочного переключателя, чтобы проверить это. и отлично работает, ха-ха. Я попробовал то, что вы сказали, и кулисный переключатель тоже работает (SIG/VCC/GND) подключите батарею к VCC, а SIG к arduino все равно ничего, @Davinco