Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino 101 Battery-Powered Fan and Motor Controller with USB Charging

View and Edit Project In Cirkit DesignerImage of Arduino 101 Battery-Powered Fan and Motor Controller with USB Charging

Circuit Documentation

Summary

This circuit is designed to manage power distribution and control a fan and a DC motor using an Arduino 101 microcontroller. The circuit includes a boost converter, a TP4056 battery charger, a diode, a pushbutton, a USB female connector, a 7.4V battery, a fan, and a DC motor. The Arduino 101 microcontroller is programmed to control the fan based on the state of the pushbutton.

Component List

  1. Boost Converter MT3608

    • Pins: OUTPUT +, OUTPUT -, INPUT +, INPUT -
    • Description: Boost converter to step up voltage.
  2. TP4056

    • Pins: OUT-, B-, B+, OUT+, IN-, IN+
    • Description: Lithium-ion battery charger module.
  3. Fan

    • Pins: GND, 5V
    • Description: 5V DC fan.
  4. DC Motor

    • Pins: pin 1, pin 2
    • Description: DC motor for mechanical movement.
  5. Arduino 101

    • Pins: A5/SCL, A4/SDA, AREF, GND, D13/SCK, D12/MISO, D11 PWM/MOSI, D10 PWM/SS, D9 PWM, D8, D7, D6 PWM, D5 PWM, D4, D3 PWM, D2, D1/TX, D0/RX, AIN, ioref, RESET, 3V3, 5V, VIN, A0, A1, A2, A3, ICSP MISO, ICSP SCK, ICSP MOSI
    • Description: Microcontroller for controlling the circuit.
  6. Diode

    • Pins: cathode, anode
    • Description: Diode for current direction control.
  7. USB Female

    • Pins: VCC, GND, -D, +D
    • Description: USB female connector for power input.
  8. 7.4V Battery

    • Pins: +, -
    • Description: 7.4V rechargeable battery.
  9. Pushbutton

    • Pins: Pin 2, Pin 1, Pin 3, Pin 4
    • Description: Pushbutton for user input.

Wiring Details

Boost Converter MT3608

TP4056

Fan

DC Motor

Arduino 101

Diode

USB Female

7.4V Battery

Pushbutton

Code Documentation

const int buttonPin = 2;
const int fanPin = 5;

int buttonState = 0;

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(fanPin, OUTPUT);
  digitalWrite(fanPin, LOW);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    digitalWrite(fanPin, HIGH);
  } else {
    digitalWrite(fanPin, LOW);
  }
}

Code Explanation