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в), но я хотел бы получить некоторую помощь с тем, что лучше всего подходит или какие-либо предложения у вас есть

То что я думаю но мне нужна помощь

  1. Проводка неправильная (но я все это проверил, и она работает нормально).
  2. Коромысловый модуль передает 3 В на UNO (недостаточно мощности).
  3. Батарея недостаточно мощная (мне нужна батарея побольше).
  4. Проблемы НУБА как его мой первый проект

В чем мне нужна помощь

  1. Какую батарею использовать?
  2. Включение/выключение выключателя

Спасибо за ПОМОЩЬ!!!

БОНУС Вот используемый код:

    #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;
    
        }
      }
    
    }

, 👍1

Обсуждение

Пожалуйста, перейдите по ссылке на продукт 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


1 ответ


Лучший ответ:

1

Итак, вот сделка (я вроде как решил ее), поэтому я разобрал батарейный блок 9 В с флип-переключателем в нем..... припаял к нему несколько проводов, и теперь он отлично работает...... ха-ха

но я все равно хотел бы знать причину, по которой модуль перекидного переключателя не работает.

единственное, что я могу придумать, это напряжение или усилитель, передаваемое от модуля переключателя, недостаточно для питания платы (как я пробовал 3 разных перекидных переключателя и все действовали одинаково).

Спасибо за помощь

,