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 кнопок для включения и выключения светодиода.
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Кнопка с таймером переключения и функцией сброса времени + светодиод обратной связи
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
Пожалуйста, перейдите по ссылке на продукт 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