adoorable
Published © GPL3+

adoorable touchless dooropener

Are you annoyed that touching door traps during COVID is a necessity? Build an adoorable and your problems are gone!

BeginnerFull instructions provided1,411
adoorable touchless dooropener

Things used in this project

Hardware components

Arduino Uno Rev.3
×1
Arduino Motor Shield Rev.3
×1
801S vibration sensor for arduino
×1
Makeblock 25mm DC Motor Pack-Blue
×1
Goobay Battery Holder 8x Mignon (AA)
×1
Compression Spring
×1
Thread Pole
×300
Hexagon Nut
×12
tesa Powerstrips Large White
×5
Wire
×1
Rubber Band
×1
USB-A to B Cable
USB-A to B Cable
×1
AA Batteries Rechargeable
×1
Costum 3D-Printed Parts
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Hacksaw
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Reversible ratchet 7mm
Metal file
Allen Key 1.5mm
Allen Key 2.5mm
Plier, Flat Nose
Plier, Flat Nose
Slotted Screwdriver 0.4 x 2.5mm
Phillips screwdriver PH0
Tape Measure, Manual
Tape Measure, Manual
Mini Side Cutter, 120mm Length with 25mm Jaw Capacity
Mini Side Cutter, 120mm Length with 25mm Jaw Capacity

Story

Read more

Custom parts and enclosures

adoorable stl-Files

Zip-File, standard.

Schematics

adoorable circuit

Code

main

Arduino
Add all three files in a folder named adoorable_Software. The further instructions are written in our construction manual.
//Sensor Setup
int sensorPin = A5;

//Variables
int val;
int prev_val;
int freq = 100;        //Messfrequenz

void setup() {
  Serial.begin(9600);
  
  //Sensor
  delay(t*2);
  pinMode(sensorPin, INPUT);

  //Motor-Shield
  pinMode(12,OUTPUT);
  pinMode(9,OUTPUT);
  digitalWrite(9,HIGH);
}

void loop() {
  prev_val = val;
  delay(freq);
  val = analogRead(sensorPin);
  if(abs(val-prev_val)>a){
    open_door();
    delay(t);
    val = analogRead(sensorPin);
    for(int i=0; i < openduration-1000; i+=freq){
      prev_val=val;
      delay(freq);
      val = analogRead(sensorPin);
      if(abs(val-prev_val)>a){
        i-=openduration;
      }
    }
    close_door();
    delay(t-freq);
    val=analogRead(sensorPin);
    delay(freq);
  }
}

adoorable_Software

Arduino
Add all three files in a folder named adoorable_Software. The further instructions are written in our construction manual.
//Mechanische Funktionen
const int openduration = 3000;  //ffnungszeit = ffnungswinkel
const int stayopen = 6000;      //Offen-Zeit (wie lange die Tr offen stehen bleibt)

//Variablen
const int a = 5;                //Ungenauigkeit (hher bedeutet mehr Toleranz)
int       t = 1500;             //Zeit nach Aktion bis zur nchsten Messung

motor

Arduino
Add all three files in a folder named adoorable_Software. The further instructions are written in our construction manual.
//Motor
const int openspeed = 255;    //value: 0-255
const int a_delay = 500;      //Anfahrtsverzgerung *2

void open_door(){
  digitalWrite(12,HIGH);
  digitalWrite(9,LOW);
  analogWrite(3, openspeed/2);
  delay(a_delay);
  analogWrite(3, openspeed/4*3);
  delay(a_delay);
  analogWrite(3, openspeed);
  delay(openduration);
  analogWrite(3, openspeed/2);
  delay(a_delay);
  digitalWrite(9,HIGH);
}

void close_door(){
  digitalWrite(12,LOW);
  digitalWrite(9,LOW);
  analogWrite(3, openspeed/2);
  delay(a_delay);
  analogWrite(3, openspeed/4*3);
  delay(a_delay);
  analogWrite(3, openspeed);
  delay(openduration);
  analogWrite(3, openspeed/4*3);
  delay(a_delay);
  analogWrite(3, openspeed/2);
  delay(a_delay);
  digitalWrite(9,HIGH);
}

Credits

adoorable

adoorable

0 projects • 1 follower

Comments