Introduction: Automatische Nootjes Dispenser

Het idee was dat je een glas in het apparaat kunt zetten en binnen enkele secondes een vol glas vol nootjes eruit kunt halen. Je hoeft niet eens handmatig in te stellen hoe veel er in het glas moet komen, hartstikke makkelijk dus!

Zodra je het glas op de juiste positie zet word je glas gevuldt. Er zit een LED ring om het glas heen die je een indicatie geeft in welk stadium je bent. Als je glas gevult word draaien de lampjes om je glas heen. Zodra het glas gevuldt is zullen alle lampjes branden.

Dit zijn de stappen die je moet ondernemen om er ook eentje te maken.

Step 1: Schaf De Spullen Aan Die Je Nodig Hebt.

Hieronder vind je de lijst met benodigdheden:

  • Een Arduino Uno
  • Een servo
  • Een gewicht sensor
  • Genoeg weerstandjes en draadjes
  • Bouwmateriaal voor de behuizing (in mijn geval MDF maar kan van alles zijn)
  • LED lampjes en hulsjes
  • Een glas (minimaal eentje om mee tetesten)
  • En een soldeerplaat met genoeg tin om mee te kunnen solderen.

Step 2: Ontwerp De Nootjes Dispenser

Je begint natuurlijk eerst met het tekenen van je ontwerp op papier. Je kunt het in 3d na maken om makkelijk de schaal en de maten te bepalen.

Vervolgens kun je het ontwerp gaan verdelen in losse plankjes zodat je het hele design in 1 keer kan laten laser snijden. Voor de versie die ik heb gemaakt. Heb ik vanaf concept schetsen eentje op maat nagemaakt in 3ds max.

Step 3: ​Maak Met De Juiste Afmetingen in Adobe Illustrator Een DXF File Voor Het Laser Snijden.

Als al je MDF plankjes eenmaal uitgesneden zijn kun je door naar de volgende stap.

Step 4: Bouw De Behuizing Van De Nootjes Dispenser

Als eerste bouw je een frame van hout waar je de losse MDF plankjes op kunt bevestigen.

Voor het bevestigen van al het materiaal gebruikte ik een nietpistool en houtlijm.

Step 5: Sluit De Arduino Aan En Maak Nu Een Stukje Code Waarmee Je De Servo Open En Dicht Krijgt.

Als test gebruikte ik hiervoor nog geen sensor als activator maar gewoon een push button.

Step 6: Sluit Nu De Gewicht Sensor Aan En Calibreer Hem.

Maak nu een prototype van hoe je wilt dat de sensor het glas registreert.

Voor het calibreren van je sensor moet je 3 stadia's maken. Deze stadiums hebben verschillende functies. De ene keer moeten lampjes wel branden en de andere keer niet. Hiermee kun je ook mee bepalen wanneer de servo het klepje open moet doen.

  • Het eerste stadium is dat de sensor geen gewicht registreert. Dit houd dus in dat er geen glas op staat. (0) (Het klepje moet nu dicht zijn.)
  • Het tweede stadium is het registreren en vullen van het glas. (Waarschijnlijk ergens tussen de 30 en 300. Dit hangt natuurlijk af van het formaat en gewicht van je glas.) (Het klepje moet nu open zijn.)
  • Het derde stadium is dat het glas vol zit. (300> Dit hangt wederom af van het formaat en gewicht van je glas.) (Het klepje moet nudicht zijn.)

Step 7: Koppel Nu Je Sensor Aan Je Servo.

Step 8: Sluit Nu Je LEDjes En Je Buzzer Aan En Koppel Deze Aan Een Bepaald Stadium.

Step 9: Als Laatste Stap Hoef Je Nu Alleen Nog Het Apparatuur in De Behuizing Te Bouwen En Te Genieten Van Je Handgemaakte Nootjes Dispencer!

Hieronder bevind zich mijn code die je kunt gebruiken als je er zelf ook eentje wilt maken.

#include

Servo servol;

int BeginPos = 100;

int EndPos = 10;

int optel = 5;

boolean Reset = false;

boolean LedSwitch = false;

// PRESSURE

int pressPin = 0;

int initReading;

int reading;

boolean startUp;

int RedPin = 3;

int GreenPin = 11;

int speakerPin = 10;

int SongAfspeel = 0;

int numTones = 4;

int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};

int MetroBooming[] = {561, 294, 749, 749};void setup() {

// SERVO

servol.attach(9);

// PRESSURE

Serial.begin(9600); //Setup a serial connection for debug.

initReading = 0; //Initialize initReading.

reading = analogRead(pressPin); //Reading equals the value,

//returned by the sensor.

startUp = true; //Initialize the calibration switch to ‘on’

pinMode(RedPin, OUTPUT); //Pin 10 is set to SEND a signal.

pinMode(GreenPin, OUTPUT); //Pin 10 is set to SEND a signal.

}

void loop() {

// PRESSURE

calibrate();

reading = analogRead(pressPin);

if(reading < 60)

{

Reset = false;

LedSwitch = false;

SongAfspeel = SongAfspeel = 0;

//Serial.println("Geen Glas aanwezig..");

digitalWrite(RedPin,LOW);

digitalWrite(GreenPin,LOW);

delay(100);

servol.write(BeginPos);

}

if(reading > 60 and reading < 250)

{

//Serial.println("Wordt Gevuld!");

delay(100);

servol.write(EndPos);

if (Reset == false)

{

if (optel <= 165 and LedSwitch == false)

{

optel = optel + 20;

}

if (optel >= 5 and LedSwitch == true)

{

optel = optel - 20;

}

if (optel == 165)

{

LedSwitch = true;

}

if (optel == 5)

{

LedSwitch = false;

}

analogWrite(RedPin, optel);

}

}

if(reading >= 250)

{

//Serial.println("Gevuld!");

digitalWrite(RedPin,LOW);

Reset = true;

}

}

void calibrate() //The first thing to do in the loop,

{

if(startUp == true) //if the calibration switch is on (which it is),

{

initReading = reading; //set initReading equal to the sensor

//value.

startUp = false; //And shut of the calibration switch.

}

if (Reset == false)

{

}

else

{

servol.write(BeginPos);

digitalWrite(GreenPin,HIGH);

delay(200);

if (SongAfspeel < numTones)

{

Serial.println(SongAfspeel);

SongAfspeel = SongAfspeel + 1;

tone(speakerPin, MetroBooming[SongAfspeel]);

}

if (SongAfspeel > (numTones-1))

{

noTone(speakerPin);

}

}

}

Step 10: Als Alles Zoals Gewenst Werkt Kun Je Alle Apparatuur En Bedrading in De Kast Bouwen