PCB Etching machine

DIY Etching machine

Zoals in mijn vorige blog al gezegd, ik wil zelf PCB’s kunnen maken. Naast een UV Exposure unit heb ik ook een apparaat nodig die de ets vloeistof in beweging houdt, en de temperatuur van de ets vloeistof tijdens het etsing-proces op de gewenste temperatuur houdt.

Als voorbeeld heb ik een apparaat genomen die door de duitse fabrikant Gie-Tec op de markt is gebracht, https://gie-tec.de/product/etching-device/?lang=en

Dit heeft me gebracht tot de volgende opzet:

  • Beluchting
    • aquarium pompje 220v aangestuurd door relais
    • langwerpige bruissteen op de bodem van de acryl-bak gelijmd
    • M.b.v. afsluiter kan hoeveelheid lucht geregeld worden
    • Via LCD/potentiometer kan tijdsduur ingesteld worden
    • Arduino sketch zorgt ervoor dat de luchtpomp ingeschakeld wordt nadat gewenste temperatuur bereikt is, en uitgeschakeld wordt zodra de gewenste tijdsduur verlopen is
  • Verwarming
    • Warmwaterdompelaar 220v aangestuurd door relais
    • Temperatuursensor meet temperatuur 
    • Via LCD/potentiometer kan gewenste temperatuur ingesteld worden
    • Arduino sketch zorgt ervoor dat de Warmwaterdompelaar ingeschakeld wordt totdat gewenste temperatuur bereikt is.
    • Arduino sketch geeft een visueel en geluidssignaal zodra de gewenste temperatuur bereikt is, en de PCB met de houder in de etsvloeistof gehangen kunnen worden
    • Arduino sketch houdt de etsvloeistof op de gewenste temperatuur gedurende het etsingsproces
  • Logica
    • Arduino nano
    • LCD 1604 display
    • Arduino sketch zorgt voor de volgende functionaliteit
      • instellen looptijd (visueel te controleren op LCD display)
      • reset
      • in- en uitschakelen beluchting gedurende de looptijd
      • buzzer zodra looptijd afgelopen is
      • instellen gewenste temperatuur (visueel te controleren op LCD display)
      • meten werkelijke temperatuur (visueel weergegeven op LCD display) door middel van DS18B20 temperatuur sensor in Acryl-bak
      • inschakelen warmwaterdompelaar totdat gewenste temperatuur bereikt is
      • gedurende de looptijd de etsvloeistof op de gewenste temperatuur houden
      • indicatie (LED & LCD display) dat er verwarmd wordt
      • indicatie (LED & LCD display) dat systeem operationeel is
      • indicatie (LED & LCD display) dat looptijd afgelopen is
    • Acrylglas tank
      • afmetingen deel PCB’s: 235 x 330 mm
      • Dikte 5mm
      • Totaal binnenmaten: 255 mm hoog, 390 mm breed en 50 mm dik
      • Totaal buitenmaten: 265 mm hoog, 400 mm breed en 60 mm dik
      • Voorzien van aftap kraantje

Benodigdheden

ProductAantalPrijs p/stukTotaalWaar te koop
220v Aquarium luchtpomp 1.7l p/minuut1Uit aquarium rommelbak
Langwerpige bruissteen 20cm1Uit aquarium rommelbak
Luchtslang 4mm, 40-50 cm1Uit aquarium rommelbak
Microafsluiter 4mm1€ 1,79€ 1,79Wildkamp.nl
Warmwaterdompelaar 220v1Uit fotografie rommelbak
DS18B20 temperatuur sensor1€ 2,95€ 2,95HobbyElectronica.nl
PCB1€ 9,53 (5-stuks)NextPCB.com
Arduino nano met losse headers1€ 8,59€ 8,59Otronics.nl
Songle srd-5vdc-sl-c relais2€ 1,45€ 2,90Benselectronics.nl
Hi-link hlk-10m05 PCB voeding1€ 7,00€ 7,00Tinytronics.nl
Trimpot 5K1€ 1,42€ 1,42Reichelt.nl
Condensator 10uF1Op voorraad
Condensator 0.1uF1Op voorraad
Weerstand 1K2Op voorraad
Weerstand 4.7K1Op voorraad
Weerstand 10K3Op voorraad
Weerstand 200 Ohm2Op voorraad
Diode 1N40072Op voorraad
Transistor 2N22222€ 0,46€ 0,92Reichelt.nl
Draaipotentiometer 5K Ohm1€ 2,80€ 2,80Aliexpress.nl
Piezo 5v zoemer1€ 1,17€ 1,17Reichelt.nl
LCD Display 16041€ 8,95 € 8,95Otronics.nl
Male header 3-voudig2Op voorraad
Male header 4-voudig2Op voorraad
Male header 6-voudig2Op voorraad
Male header 16-voudig1Op voorraad
Female header 15-voudig2€ 0,32€ 0,64Vanallesmeer.nl
RGB  LED common cathode1€ 0,25€ 0,25BitsandParts.nl
Pushbutton3€ 1,50€ 3,00BitsandParts.nl
female-female dupont kabel 6-voudig 30cm2€ 1,25€ 2,50BitsandParts.nl
female-female dupont kabel 2-voudig3€ 0,45€ 1,35BitsandParts.nl
Schroefterminal 2-voudig3Op voorraad
Schroefterminal 3-voudig1€ 0,40€ 0,40Reichelt.nl
Schakelaar1Op voorraad
Plexiglas 400 x 750 x 5mm1€ 130,00 p/m2€ 22,00Platstore.nl
Acrifix 192 acrylaat lijm1€ 14,90€ 14,90Highflow.nl
Vat kraan ¾” buitendraad1€ 2,81€ 2,81Wildkamp.nl
Schuurpapier korrel 120-1801Op voorraad
Watervast schuurpapier korrel 6001Platstore.nl
Watervast schuurpapier korrel 10001Platstore.nl
Houtschroeven 3×3.0 torx8Op voorraad
Houtplamuur1Op voorraad
Houtlijm1Op voorraad
MDF 200x300x18 mmReststuk
Aluminium plaat 200x98x3 mm1Reststuk
MDF grondverf1Op voorraad
Spuitlak transparant1Op voorraad
Spuitlak kleur1Op voorraad
PLAOp voorraad
Plantenschotel 56,8 x 15 x 2,5 cm (Elho)1€ 3,39€ 3,39Intratuin.nl
Siliconenkit transparant1Op voorraad

Gereedschap

  • Tafelcirkelzaag
  • Afkortzaag
  • Accu schroefmachine
  • Schuurmachine/blok
  • Plamuurmessen
  • Speedboor 25-30mm
  • Metaalboren 2, 3, 8, 11, 12mm
  • Verzinkboor
  • Metaalvijl plat en rond
  • Stanleymes
  • Soldeerbout + tin
  • Verfkwast
  • 3D printer
  • Spuitflacon met water
  • Vuuraansteker
  • Kniptang
  • Afstriptang
  • Kitspuit

Stap 1. Behuizing voor electronica maken

Zaag uit de MDF plaat de volgende onderdelen:

Zaag de zijkanten af onder een hoek van 45 graden. Zaag de voor- en achterkant aan één zijde over de lengte onder een hoek van 45 graden. Zaag de achterkant daarna nogmaals onder een hoek van 45 graden met een zaagbladlengte van zo’n 10mm, en 3mm minder in breedte zodat een soort van sponning voor het aluminium frontpaneel ontstaat.

Boor met een 3mm hout- of metaalboorje de gaatjes voor, en verzink ze. Boor met een 2mm hout- of metaalboor de schroefgaten voor in het te bevestigen onderdeel.

Smeer wat houtlijm op de te schroeven onderdelen, en schroef de onderdelen vast.

Maak twee klosjes van een restantje hout of MDF, ongeveer 100×44 mm en zaag die onder een hoek van 45 graden. Schroef die 3mm onder de bovenrand van de zijkant aan de binnenzijde. Deze dienen als steun voor het aluminium frontpaneel.

Schuur zodra de houtlijm uitgehard is alles netjes glad. Vul de gaatjes met houtplamuur, en plamuur de zaagsnedes.

Herhaal dit en schuur zodra de houtplamuur uitgehard is alles superglad. Zet daarna de behuizing in de MDF grondverf

Schuur zodra de eerste laag grondverf droog is de behuizing lichtjes, en breng nogmaals een laag grondverf aan. Schuur zodra de twee laag grondverf droog is de behuizing lichtjes en breng de eerste laag spuitlak aan.

Breng zodra de eerste laag spuitlak droog is, een twee laag aan. Schuur daarna met watervast schuurpapier, korrel 1000, de behuizing glad en breng de finale laag spuitlak aan. De behuizing is nu klaar voor montage.

Stap 2. Acrylbak maken

Zaag uit een plaat Acrylglas (Plexiglas) van 5mm dik de volgende onderdelen:

Ik heb het plexiglas met mijn zaagtafel gezaagd met een gewoon cirkelzaagblad voor hout.

Het tussenpaneel viel in mijn geval wat korter uit doordat ik simpelweg niet meer plexiglas had. Is op zich niet erg, want het water tussen gedeelte met de warmtedompelaar en het gedeelte waar de printplaat in dient te hangen moet zich vrij kunnen bewegen. Zo-ie-zo het tussenpaneel zo’n cm korter houden dan de zijpanelen zodat je de kabel van de DS18B20 temperatuursensor en de luchtslang er onderdoor kunt halen. Om dat nog extra te bevorderen heb ik met een 30mm speedboor nog 4 extra gaten in het tussenpaneel gemaakt.

Daarna heb ik alle randen van de plexiglas onderdelen nauwkeurig geschuurd. Eerst met korrel 180, en daarna met watervast schuurpapier korrel 600. Gebruik hiervoor een schuurblok van minimaal 60cm, span het schuurpapier hierop en zet aan de achterkant vast met een paar nietjes. Zorg ervoor dat je de te schuren onderdeel rechtstandig op het schuurblok schuurt, voorkom afrondingen of schuine randen. Daarna de beschermende folie van het plexiglas aftrekken en met een antistatische reiniger en doek de onderdelen zorgvuldig reinigen. Nu kunnen we de onderdelen lijmen. Nog even de stappen op een rijtje:

(bron: kunststofplatenshop.nl)

Zo verlijm je plexiglas met Acrifix:

  • Schuur de contactoppervlakken die je met elkaar gaat verlijmen.
  • Start met een grove korrel en werk langzaam toe naar een fijne korrel (korrel 400).
  • Maak de delen die je gaat verlijmen schoon met een antistatische reiniger.
  • Veeg de delen droog met een niet-pluizende antistatische doek.
  • Trek handschoenen aan en zet een veiligheidsbril op.
  • Zorg ervoor dat de lijm over de gehele lengte over de twee plexiglas delen vloeit.
  • Fixeer je lijmverbinding met behulp van houten klosjes.
  • Gebruik bij een haakse verbinding een blokhaak bij het positioneren.
  • Wacht 20 minuten zodat de Acrifix volledig is opgelost.
  • Na 24-48 uur heeft de Acrifix zijn maximale sterkte bereikt.

Bekijk eventueel dit filmpje

Zorg ervoor dat je een paar houten klossen binnen handbereik hebt, bijv. enkele SLS balkjes van minimaal 50cm. We starten met het verlijmen van de onderkant aan tegen de voorkant. Breng een egale lijn lijm aan op één van de lange zijden van het onderpaneel en schuif deze vervolgens tegen één van de lange zijden van het voorpaneel. Ondersteun dit met twee houten balkjes. Positioneer het onderpaneel correct ten opzichte van het voorpaneel.

Neem tussen ieder te verlijmen onderdeel 5 minuten droogtijd. Nu gaan we een zijpaneel verlijmen op het voorpaneel. Klem met een lijmklem het zijpaneel vast op het onderpaneel. Ondersteun het geheel wederom met enkele balkjes.

Herhaal dit voor het andere zijpaneel.

En vervolgens het tussenpaneel. Leg een 7 bij 5 balkje tussen het zijpaneel en het tussenpaneel. Breng een egale lijn lijm aan op het voorpaneel, en positioneer het tussenpaneel dusdanig op het voorpaneel dat de bovenkant gelijk is aan de bovenkant van het voorpaneel.

Nu gaan we eerst de bruissteen en de DS18B20 temperatuursensor op het onderpaneel bevestigen met wat transparante siliconenkit. We kunnen er ten slot van rekening nu nog gemakkelijk bij. De kabel van de temperatuursensor en de luchtslang zet ik met wat dotjes siliconenkit vast op onder- en zijpaneel.

Tot slot lijmen we het achterpaneel op het geheel. Met balkjes breng ik wat gewicht op het achterpaneel aan, en met twee lijmklemmen klem ik hem goed vast op het onderpaneel.

Na de 5 minuten droogtijd verwijder ik de lijmklemmen en balkjes en zet het geheel weg zodat het 48 uur kan harden. Vol spanning of hij waterdicht zal zijn.

Noot: Twee dagen later de bak gevuld met water. Helaas zal er toch een lek in. De bak goed laten drogen en vervolgens met een stanleymes de lek wat verder open gewrikt. Daarna met een injectiespuit met dunne naald Arcifix tussen de twee te lijmen plexiglas onderdelen gespoten en opnieuw goed op elkaar geklemd. Na nogmaals 48 uur harden opnieuw getest, en nu bleek de bak waterdicht.

Stap 3. Frontpaneel maken

Zaag uit een 3mm aluminium plaat een stuk van 200x98mm. Verwijder de bramen met een stanleymes

Hanteer de volgende zaag- en boormallen, en neem die over op de alu-plaat.

Bovenstaande mallen zijn te downloaden:

FileDownload locatie
Frontpanel uitsparingenhttps://drive.google.com/file/d/1Jo-JRlBpwDsXHuscN3j7Il95Fm_mD2NB/view?usp=sharing
Frontpanel drillholeshttps://drive.google.com/file/d/1J4FmXeDg8oY1_ZcrzAFJGVNPj9T7Khmu/view?usp=sharing

Zaag de uitsparing voor de LCD display uit, en boor de gaten voor de knoppen en RGB led uit. Boor tevens de gaten uit voor het bevestigen van het frontpanel op de behuizing. Schuur de bovenkant van de frontpanel eerst met watervast schuurpapier korrel 600, en daarna met korrel 1000 superglad. Reinig het oppervlak m.b.v. alcohol en keukenpapier. Werk af met 3 tot 4 lagen transparante spuitlak.

Stap 3. Knoppen en LCD display op frontpanel monteren.

Ik begin met de RGB Led, hiervoor zijn de volgende onderdelen nodig:

  • RGB LED
  • LED fitting
  • 4-voudige female dupont kabel
  • 4 stukjes tule

Soldeer de dupont kabel op de RGB Led, let er op dat je pin 4 op de lange poot (Anode) soldeert, de ander pins maken op zich niet uit. Schuif voordat je de draden op de LED soldeert wat stukken tule over de draad. Schuif deze tules na het solderen tot vlak bij de LED en verwarm ze even zodat ze op hun plek krimpen.

Doe een paar druppen lock-tide op de kraag van de LED fitting, en druk deze op zijn plek in het aluminium frontpaneel. Druk daarna van achteren de LED in de LED fitting, deze zet zich zelf klem.

Daarna het LCD display:

Benodigd

  • LCD display 1604
  • 16-pins male header
  • 2 6-pins female-female dupontkabels 20cm

Soldeer de 16-pins male header op het LCD display

Schuif de 2 6-pins female-female dupont kabels op de header, één op de linker pinnen van VSS t/m E en één op de rechter pinnen van DB4 t/m LEDK.

De drie drukknoppen:

Benodigd

  • 3 drukknoppen
  • 2 2-voudige female-female dupontkabels 50cm
  • 6 stukjes krimpkous

Knip 2 twee-voudige female-female kabels doormidden en strip de uiteinden. Schuif een stukje krimpkous over de uiteinden en soldeer de kabels op de drie pushbuttons. Schuif het stukje krimpkous terug tot de knop, en verwarm die even met een vuuraansteker.

Daarna de potmeter:

Benodigd

  • Bourns 3590s-2-103 preciezie potentionmeter
  • 3-voudige female-female dupontkabel 20cm
  • 3 stukjes krimpkous
  • Knop

Knip één van de uiteinden van de dupontkabel, strip en vertin de uiteinden. Schuif stukjes krimpkous op de draden en soldeer de draden als volgt vast:

PotentiometerDupontkabel / Pot Pin (PCB)
3Linker kabel/5v +
1Rechter kabel/D14
2Middelste kabel/GND

Stap 4. Luchtpomp bevestigen in behuizing

Om de luchtpomp te kunnen bevestigen in de behuizing verwijder ik de beschermkap. Deze zit met 4 schroefjes vast vanaf de onderkant. De bovenkant gooi ik weg, en schroef met 4 3.0 x 4 houtschroeven de luchtpomp vast op de rechter zijkant van de behuizing. Het snoer knip ik af en strip de uiteinden en voorzie ze van aderhulzen.

Stap 5. Warmwaterdompelaar bevestigen in Acrylbak

Om te zorgen dat het verwarmingselement van de warmwaterdompelaar nooit de acrylbak gaat raken heb ik van hout en triplex een soort dop gemaakt waarin de warmwaterdompelaar helemaal klem zit, en die aan de bovenkant op de acrylbak rust zodat ook het minimum en maximum waterpeil van de dompelaar overgenomen kan worden op de acrylbak.

Stap 6. Hardware testen

Zoals te doen gebruikelijk test ik eerst altijd alle hardware m.b.v. een breadboard, dit om verrassingen en/of teleurstellingen te voorkomen als iets niet werkt. Te beginnen met het LCD display.

Benodigd:

  • Arduino nano met headers erop gesoldeerd
  • 7 female – male jumperkabels
  • 7 female – female jumperkabels
  • breadboard
  • 5K trimpot
  • USB kabel

Verbind jumperkabels tussen de 5v en GND pins van de arduino en de + en – rails van je breadboard. Sluit daarna de LCD 1604 display als volgt aan:

VSS, V0, RW en K kun je aansluiten op de – rail van je breadboard. VDD op de + rail van je breadboard. RS, E, D4 t/m D7 en 3.3V sluit je rechtstreeks aan op je Arduino. Sluit een 5K trimpot aan waarbij pin 1 (gerekend vanaf stelschroefje) wordt aangesloten op de – rail van je breadboard, pin 2 op V0 van de LCD 1604 display en pin 3 op de + rail van je breadboard.

Daarna met behulp van een USB-A naar mini-USB kabel de Arduino nano aangesloten op mijn laptop en Arduino IDE opgestart. Onder Tools, Boards, Arduino AVR boards gekozen voor Arduino nano . Mijn Arduino nano is een kloon en nog niet voorzien van de nieuwste bootloader die AVR toepast in de originele bordjes. Daarom onder Tools, Processor gekozen voor de ATmega328P (Old bootloader). En tot slot de juiste USB-poort waar je je Arduino nano op het aangesloten gekozen onder Tools, Port. Vervolgens onderstaande sketch gekopieerd en geuploaded (Sketch, Upload):

#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  lcd.begin(16, 4);
  lcd.print("First line");
  lcd.setCursor(0,1);
  lcd.print("Second line");
  lcd.setCursor(0,2);
  lcd.print("Third line");
  lcd.setCursor(0,3);
  lcd.print("Fourth line");
}

void loop() {
}

In eerste instantie zag ik alleen maar witte blokken op het scherm. M.b.v. een klein schroevendraaiertje de trimpot bijgesteld tot de tekst duidelijk te zien was.

Noot: Op deze foto zie je dat ik een Arduino Uno heb gebruikt, de Arduino nano die ik besteld heb bleek defect en heb ik geretourneerd. Het gebruik van de Arduino Uno voor deze tutorial maakt geen verschil t.o.v. de Arduino Nano.

Dat werkt. Nu de volgende stap, de DS18B20 temperatuur sensor aansluiten.

Benodigd

  • DS18B20 temperatuur sensor
  • 3-voudige PCB schroefterminal
  • 3 male-male jumperkabels
  • weerstand 4.7K ohm

De 3-voudige schroefterminal steken we op een vrije plek op het breadboard, van links naar rechts sluiten we die als volgt aan:

  • pin 1 op de – rail van het breadboard
  • pin 2 op pin 6 van de arduino
  • pin 3 op de + rail van het breadboard
  • tussen pin 2 en pin 3 steek je een 4.7K Ohm weerstand

Sluit de DS18B20 temperatuur sensor als volgt aan op de schroefterminal. Zwarte draad (GND) op pin 1, Gele draad (Data) op pin 2 en Rode draad (5V VDD) op pin 3.

IPV PIN 2 heb ik PIN6 gebruikt

We gaan de sketch nu uitbreiden met het uitlezen van de temperatuur van de DS18B20 temperatuur sensor. Upload onderstaande sketch naar je Arduino nano:

/********************************************************************/
// First we include the libraries
#include <OneWire.h> 
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Setup LCD 1604 display
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

/********************************************************************/
// Data wire is plugged into pin 6 on the Arduino 
#define ONE_WIRE_BUS 6 
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices  
// (not just Maxim/Dallas temperature ICs) 
OneWire oneWire(ONE_WIRE_BUS); 
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
/********************************************************************/ 
void setup(void) 
{ 
 // start serial port 
 Serial.begin(9600); 
 Serial.println("Dallas Temperature IC Control Library Demo"); 
 // Start up the library 
 sensors.begin(); 
 // Start up LCD display
 lcd.begin(16, 4);

} 
void loop(void) 
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus 
  /********************************************************************/
  lcd.clear();
  lcd.print("Req. temp..."); 
  sensors.requestTemperatures(); // Send the command to get temperature readings 
  lcd.println("DONE"); 
  /********************************************************************/
  lcd.print("Temp is: "); 
  lcd.println(sensors.getTempCByIndex(0)); // Why "byIndex"?  
  // You can have more than one DS18B20 on the same bus.  
  // 0 refers to the first IC on the wire 
  delay(1000); 
} 

En het werkt:

En als laatste gaan we het songle SRD-05VDC-SL-C relais testen.

Benodigd

  • Songle SRD-05VDC-SL-C relais
  • weerstand 1K Ohm
  • diode 1N4007
  • transistor 2N2222
  • rode led
  • weerstand 220 Ohm
  • 4 female – male jumperkabels

We bevestigen drie female – male jumperkabels op de 3 pins (coil +, common, coil -) op een rij van de relais, en 1 jumperkabel op één van de pinnen van de 2 pins (NC, NO) op een rij van de relais. Maakt niet uit of je voor Normal Open of Normal Closed kiest. Steek de coil + (1e of 3e pin, maakt niet uit) op de + rail van het breadboard. Steek de 2e pin (common) ook op de + rail van je breadboard.

Steek de 2N2222 transistor op een vrije positie van je breadboard. Verbindt de rechterpoot van de 2N2222 transistor met de coil – pin van het relais. Verbindt de linkerpoot van de 2N2222 transistor met de – rail van je breadboard. Verbindt de middelste poot van de 2N2222 transistor middels een 1K Ohm weerstand met pin 7 van de arduino.

Steek een rode led op een vrije positie van je breadboard. Verbindt de kathode (korte poot) van de led middels een 220Ohm weerstand met de – rail van je breadboard. Verbindt de anode (lange poot) van de led met de NC of NO pin van je relais.

Plaats de 1N4007 diode tussen de coil + en coil – van je relais, dit met anode richting coil + en kathode (wit bandje) richting coil -.

In het voorbeeld wordt D5 (pin 2) gebruikt, ik gebruik echter pin D4 (pin 7)

Ook nu weer de sketch uitgebreid met het aansturen van het relais. De uitbreiding zorgt ervoor dat de led om de 2 seconden aan- en uit gezet wordt, je hoort als het goed is het relais klikken.

/********************************************************************/
// First we include the libraries
#include <OneWire.h> 
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Setup LCD 1604 display
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Setup relay
const int relayPin = 7;
const long interval = 2000;  // pause for two seconds

/********************************************************************/
// Data wire is plugged into pin 6 on the Arduino 
#define ONE_WIRE_BUS 6 
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices  
// (not just Maxim/Dallas temperature ICs) 
OneWire oneWire(ONE_WIRE_BUS); 
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
/********************************************************************/ 
void setup(void) 
{ 
 // start serial port 
 Serial.begin(9600); 
 Serial.println("Dallas Temperature IC Control Library Demo"); 
 // Start up the library 
 sensors.begin(); 
 // Start up LCD display
 lcd.begin(16, 4);
 // Set relayPin for OUTPUT
 pinMode(relayPin, OUTPUT);

} 
void loop(void) 
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus 
  /********************************************************************/
  lcd.clear();
  lcd.print("Req. temp..."); 
  sensors.requestTemperatures(); // Send the command to get temperature readings 
  lcd.println("DONE"); 
  /********************************************************************/
  lcd.print("Temp is: "); 
  lcd.println(sensors.getTempCByIndex(0)); // Why "byIndex"?  
  // You can have more than one DS18B20 on the same bus.  
  // 0 refers to the first IC on the wire 

  // Let Relay blink the LED
  digitalWrite(relayPin, HIGH); // turn on relay with voltage HIGH
  delay(interval);              // pause
  digitalWrite(relayPin, LOW);  // turn off relay with voltage LOW
  delay(interval);              // pause
} 

De rest van de hardware zoals knoppen, potentiometer en RGB led heb ik al getest tijdens mijn UV exposure unit project, die tests ga ik hier niet herhalen.

Stap 7. Printplaat ontwerpen

Nu de hardware tests in de vorige stap allemaal naar tevredenheid zijn afgerond, en de pinout daarmee vaststaat, kan de printplaat worden ontworpen. Voor de volledigheid hieronder de volledige pinout van de Arduino Nano.

JumperArduino PinFunctie
2-1VIN
2-2GNDGND
2-3RST
2-45V5V
2-5A7
2-6A6
2-7A5
2-8A4DS18B20 Temperatuur sensor
2-9A3Luchtpomp
2-10A2Warmwaterdompelaar
2-11A1Buzzer
2-12A0Potentiometer
2-13REF
2-143v3
2-15D13Instellen temperatuur
1-1D1
1-2D0
1-3RST
1-4GND
1-5D2LCD-14 Data Pin 7
1-6D3LCD-13 Data Pin 6
1-7D4LCD-12 Data Pin 5
1-8D5LCD-11 Data Pin 4
1-9D6Reset/Off
1-10D7Instellen tijd
1-11D8RGB-LED R
1-12D9RGB-LED G
1-13D10RGB-LED B
1-14D11LCD-6 Enable
1-15D12LCD-4 Register Select

Op basis hiervan, en de pinouts van de overige componenten de printplaat ontworpen in Eagle.

Uiteraard zijn de files te downloaden

FileDownload locatie
PCB etching machine schemahttps://drive.google.com/file/d/1yBOLIdzVhNSMrtBq-6sCHaQGOxssHFVQ/view?usp=share_link
PCB etching machine boardhttps://drive.google.com/file/d/1RLfRX2C8-6hf4E5LOoybZSDvrb-AiNEf/view?usp=sharing
PCB etching machine gerber fileshttps://drive.google.com/file/d/1JYA3KMp8ZQlS2eW9eGGhlXJgA_KkHhF-/view?usp=share_link

Stap 8. PCB’s besteld

Wederom gebruik gemaakt van NextPBC.com voor het maken van de printplaat. Waarschijnlijk voor de laatste keer, want zoals eerder gezegd, ik wil zelf printplaten kunnen maken. Daar de volgende bestelling gedaan:

Stap 9. Frontpaneel assembleren

Nadat ik het aluminium frontpaneel secuur met watervast schuurpapier geschuurd heb, en daarna twee maal in de blanke lak, kunnen de knoppen, RGB Led, potentiometer en LCD Display gemonteerd worden. We starten met het assembleren van de knoppen.

Hiervoor heb je nodig:

  • 3x pushbutton
  • 3 2-voudige female-female dupont kabels 20cm
  • 6 stukjes tule

Strip de dupont kabels en soldeer deze op de 2 pushbuttons. Schuif voordat je de draden op de buttons soldeert een paar kleine stukjes tule over de draad. Schuif deze na het solderen tot de pushbutton en verwarm ze even. Draai de borgmoer los van de knop, steek de knop door het gat in het frontpaneel en draai de borgmoer stevig vast op de knop met een steeksleutel of bahco.

Groen is tijd instellen, wit is temperatuur instellen en rood is reset.

Nu plaatsen we de potentiometer, hiervoor heb je nodig:

  • bourns draaipotentionmeter 3590S2502L
  • 3 voudige female-female dupont kabel 20cm
  • 3 stukjes tule
  • draaiknop

Knip een van de stekkers van de dupont kabel en strip de draden. Soldeer vervolgens de draden als volgt: Pin 3:+ (5v), Pin 1:output, Pin 2:- (Gnd) gerekend vanaf voorkant potmeter.

Draai de borgmoer los en steek de potentiometer door het gat in het frontpaneel. Ik heb de carrosseriering aan de achterkant van het frontpaneel gehouden, want anders komt er een vrij grote afstand tussen knop en frontpaneel. Draai de borgmoer op de potentiometer en m.b.v. een steeksleutel of bahco stevig vast. Druk de knop op de potentiometer en draai het schroefje aan de zijkant vast.

Nu het LCD display, hiervoor heb je nodig:

  • LCD display
  • 15-voudige male header
  • 2 x 6-voudige female-female dupontkabel 20cm
  • 3D geprint frame
  • 3D geprinte opvulstrip

Om de LCD display netjes af te werken heb ik een frame ontworpen. Deze valt over het LCD display en is op de randen netjes afgewerkt. Tevens om de LCD display goed vast te kunnen lijmen op het frontpaneel een dun stripje gemaakt die tussen de printplaat van de LCD display wordt gelijmd. De 3D ontwerpen en STL-files kun je uiteraard downloaden:

BestandDownload link
Frame LED-display CAD file (FreeCAD)https://drive.google.com/file/d/17VqtQTS1isKCI46NmbEYI3T4JmjcWhWl/view?usp=share_link
Frame LED-display STL filehttps://drive.google.com/file/d/1A88vRdIx6xugPGX7ErR4YPSiOfPyp-Nx/view?usp=share_link
Vulstripje STL filehttps://drive.google.com/file/d/1i6I_D4Ulod_cZsY98yfRpyPMoMgssxP2/view?usp=share_link

De header had ik al eerder op de LCD display gesoldeerd, evenals het monteren van de twee 6-voudige dupont kabels. De vulstrip lijm ik met Lock Tide op de printplaat, vervolgens lijm ik het LCD display vanaf de achterzijde op het frontpaneel. (Haal wel eerst de beschermfolie van het display ;-). Als de lijm uitgehard is lijm ik het frame aan de voorzijde van het frontpaneel over het LCD display.

Tot slot de RGB Led, hiervoor zijn de volgende onderdelen nodig:

  • RGB LED
  • LED fitting
  • 4-voudige female dupont kabel
  • 4 stukjes tule

Soldeer de dupont kabel op de RGB Led, let er op dat je pin 4 op de lange poot (Anode) soldeert, de ander pins maken op zich niet uit. Schuif voordat je de draden op de LED soldeert wat stukken tule over de draad. Schuif deze tules na het solderen tot vlak bij de LED en verwarm ze even zodat ze op hun plek krimpen.

Doe een paar druppen lock-tide op de kraag van de LED fitting, en druk deze op zijn plek in het aluminium frontpaneel. Druk daarna van achteren de LED in de LED fitting, deze zet zich zelf klem.

Het frontpaneel is nu klaar.

Stap 10. Arduino sketch ontwikkeld

Als basis de arduino sketch gebruikt die Tomi Malkki heeft ontwikkeld voor de UV Exposure Unit. Echter deze qua functionaliteit flink uitgebreid, zoals:

  • Uitlezen DS18B20 temperatuur sensor
  • Instellen gewenste temperatuur etsing vloeistof
  • Aansturen relais t.b.v aan- en uitschakelen warmwaterdompelaar
  • Aansturen relais t.b.v. aan- en uitschakelen luchtpomp
  • Gebruik 4-regelig LCD scherm
  • Logica om eerst de ets vloeistof op temperatuur te brengen, en daarna de luchtpomp in werking te stellen. Tevens wordt de ets vloeistof op temperatuur gehouden tijdens het etsings proces.

De arduino sketch is te downloaden

FileDownload locatie
PCB etching machine.inohttps://drive.google.com/file/d/1MaTSz5CiMxZGTSMhlHURkm9NlJIjEyHU/view?usp=share_link

Download de arduino sketch en upload hem m.b.v. Arduino IDE naar je Arduino nano.

Stap 11. 3D ontwerp gemaakt van de PCB houder

Ook hiervoor het voorbeeld gebruikt van Gie-Tec GmbH

Hieronder mijn versie. Bestaande uit een deksel, linker, midden en rechter geleider en een plaatje om de geleider op het deksel vast te schroeven.

Hieronder de te downloaden .stl files, en het aantal keren je ze moet printen en de printduur.

FileAantalDownload locatiePrintduur
FreeCAD ontwerphttps://drive.google.com/file/d/1ZtyivkeoV1gQ8492oH4kZSje_cjWsEhA/view?usp=share_link
Deksel1https://drive.google.com/file/d/1VNZl2ZGiTwde6ZzNkl4tQfHDyVBo8FM_/view?usp=share_link35,5 uur
Geleider links en rechts2https://drive.google.com/file/d/1IL0kkYHTyWoYMAUtceCcGpQ3TDpg5ouu/view?usp=share_link1 uur en 45 minuten p/stuk
Geleider midden1https://drive.google.com/file/d/1ujZBJVQazWpKlOU5m8PuSUnQ_ujeZZnt/view?usp=share_link4,5 uur
Plaatje4https://drive.google.com/file/d/1_fxtJt263UzLPAWAgnjdgI5QAq68DDLw/view?usp=share_link15 minuten p/stuk

Stap 12. PCB houder printen en assembleren

Ik heb de onderdelen van de PCB houder geprint op mijn Creality Ender 5 Pro printer met de volgende instellingen:

SettingWaarde
Extruder temperature200o
Hotbed temperature50o
Layer height0,12 mm
Infill density20% cubic
Wall/Top thickness0,8 mm
Generate supportUitgevinkt
RetractionAangevinkt
Printing Speed80mm/s
Cooling100%

Hieronder het overzicht met de verschillende onderdelen.

Assembleer de PCB houder als volgt. Benodigdheden:

  • Deksel
  • 2x geleider links/rechts
  • geleider midden
  • 4x plaatje
  • 4x M4 x 12 schroeven
  • 4x M4 rampamoeren 8mm
  • Lock-tide secondenlijm

Boor met een 4mm boortje de gaten in de linker, midden en rechter geleider uit, ongeveer 15mm diep. Breng een beetje lock-tide secondenlijm aan op de rampamoer, en draai deze in het gat totdat hij gelijk is aan het oppervlakte. Schuif de geleiders in het deksel. Plaats het plaatje boven het gat van de geleider en steek hier een M4 schroef doorheen, schroef het plaatje vast zodat de geleider niet meer kan schuiven in het deksel. Je kunt op deze wijze straks de geleiders aanpassen op de breedte van de PCB die je wilt ontwikkelen. Pas het deksel op de acrylbak.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *