NSUDE, MADUKA EVARISTUS
Published © GPL3+

Remote-controlled Bed for Individuals who are Bedridden

The bed enhances mobility by enabling care-givers to easily move the disabled to places by simply pressing buttons on the remote controller.

AdvancedFull instructions provided3 days92
Remote-controlled Bed for Individuals who are Bedridden

Things used in this project

Hardware components

Arduino Uno
×1
30A 5v 4-channel relay module
×2
TSOP 1838
×1
24v DC Motor
×2
IR remote controller
×1
Adaptable box
×1
Battery clips
×4
12v 7Ah rechargeable battery
×3
Male-male jumper wires set
×1
Female-female jumper wires set
×1
Male-female jumper wires set
×1
Vero board
×1

Software apps and online services

Arduino IDE

Hand tools and fabrication machines

Soldering iron
6092 Magnetic Precision Screw driver
PCB Hand Drilling Machine
Mini Inverter Welding Machine

Story

Read more

Custom parts and enclosures

CAD design of the base and wheels of the smart bed for individuals who are bedridden

This is a CAD design of the base and wheels of the smart bed for individuals who are bedridden

Box

This is a box that was used to house the electronic components

Schematics

Schematics

This is a circuit diagram/schematics of the project. It shows the units and components that make up the project and how they connect with each other to achieve overall goal of the system.

Code

Source Code of the Smart Remote-controlled Bed for Individuals who are bedridden

C/C++
This is the source code/firmware of the smart remote-controlled bed for individuals who are bedridden. The algorithm constantly "listens" to signals coming from the remote controller and controls the bed's wheels accordingly.
#include <IRremote.h>

const byte IR_RECEIVE_PIN = 4;

#define LeftWheelForwardTerminal1 5
#define LeftWheelForwardTerminal2 6
#define LeftWheelBackwardTerminal1 7
#define LeftWheelBackwardTerminal2 8

#define RightWheelForwardTerminal1 9
#define RightWheelForwardTerminal2 10
#define RightWheelBackwardTerminal1 11
#define RightWheelBackwardTerminal2 12 

void setup() 
{
  pinMode(LeftWheelForwardTerminal1,OUTPUT);
  pinMode(LeftWheelForwardTerminal2,OUTPUT);
  pinMode(LeftWheelBackwardTerminal1,OUTPUT);
  pinMode(LeftWheelBackwardTerminal2,OUTPUT);
  
  pinMode(RightWheelForwardTerminal1,OUTPUT);
  pinMode(RightWheelForwardTerminal2,OUTPUT);
  pinMode(RightWheelBackwardTerminal1,OUTPUT);
  pinMode(RightWheelBackwardTerminal2,OUTPUT);

  digitalWrite(RightWheelForwardTerminal1,LOW);
  digitalWrite(RightWheelForwardTerminal2,LOW);  
  digitalWrite(RightWheelBackwardTerminal1,LOW);
  digitalWrite(RightWheelBackwardTerminal2,LOW);
  
  digitalWrite(LeftWheelForwardTerminal1,LOW);
  digitalWrite(LeftWheelForwardTerminal2,LOW);
  digitalWrite(LeftWheelBackwardTerminal1,LOW);
  digitalWrite(LeftWheelBackwardTerminal2,LOW);
  
  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}

void loop() 
{
  if (IrReceiver.decode())
  {
      IrReceiver.resume();
 
      if(IrReceiver.decodedIRData.command==78) //Forward
      {
       Serial.println("Moving forward");

       digitalWrite(LeftWheelBackwardTerminal1,LOW);
       digitalWrite(LeftWheelBackwardTerminal2,LOW);

       digitalWrite(RightWheelBackwardTerminal1,LOW);
       digitalWrite(RightWheelBackwardTerminal2,LOW);
       
       digitalWrite(LeftWheelForwardTerminal1,HIGH);
       digitalWrite(LeftWheelForwardTerminal2,HIGH);
    
       digitalWrite(RightWheelForwardTerminal1,HIGH);
       digitalWrite(RightWheelForwardTerminal2,HIGH);
      }
    
      else if(IrReceiver.decodedIRData.command==4) //Backward
      {
       Serial.println("Moving backward");
   
       digitalWrite(LeftWheelForwardTerminal1,LOW);
       digitalWrite(LeftWheelForwardTerminal2,LOW);
    
       digitalWrite(RightWheelForwardTerminal1,LOW);
       digitalWrite(RightWheelForwardTerminal2,LOW);
       
       digitalWrite(LeftWheelBackwardTerminal1,HIGH);
       digitalWrite(LeftWheelBackwardTerminal2,HIGH);
    
       digitalWrite(RightWheelBackwardTerminal1,HIGH);
       digitalWrite(RightWheelBackwardTerminal2,HIGH);
      }
    
      else if(IrReceiver.decodedIRData.command==6) //Left
      {
       Serial.println("Turning left");
    
       digitalWrite(RightWheelForwardTerminal1,LOW);
       digitalWrite(RightWheelForwardTerminal2,LOW); 
       digitalWrite(RightWheelBackwardTerminal1,LOW);
       digitalWrite(RightWheelBackwardTerminal2,LOW);
     
       digitalWrite(LeftWheelForwardTerminal1,HIGH);
       digitalWrite(LeftWheelForwardTerminal2,HIGH);
      }
    
      else if(IrReceiver.decodedIRData.command==7) //Right
      {
       Serial.println("Turning right");
    
       digitalWrite(LeftWheelForwardTerminal1,LOW);
       digitalWrite(LeftWheelForwardTerminal2,LOW);
       digitalWrite(LeftWheelBackwardTerminal1,LOW);
       digitalWrite(LeftWheelBackwardTerminal2,LOW);
    
       digitalWrite(RightWheelForwardTerminal1,HIGH);
       digitalWrite(RightWheelForwardTerminal2,HIGH);    
      }

      else if(IrReceiver.decodedIRData.command==5) // Brake
      {
       Serial.println(" On brake");
    
       digitalWrite(LeftWheelForwardTerminal1,LOW);
       digitalWrite(LeftWheelForwardTerminal2,LOW);
       digitalWrite(LeftWheelBackwardTerminal1,LOW);
       digitalWrite(LeftWheelBackwardTerminal2,LOW);
    
       digitalWrite(RightWheelForwardTerminal1,LOW);
       digitalWrite(RightWheelForwardTerminal2,LOW);
       digitalWrite(RightWheelBackwardTerminal1,LOW);
       digitalWrite(RightWheelBackwardTerminal2,LOW);    
      }
   } 
}

Credits

NSUDE, MADUKA EVARISTUS

NSUDE, MADUKA EVARISTUS

3 projects • 4 followers
IoT & Software Developer | Electronic Engineer | Project Assistant. My Awards (+ 2 Int'l): lnkd.in/dECgkdN7 My works: lnkd.in/dEvBTszb

Comments