Arduino UV LED PCB exponering Box
Jag gjorde det av följande: e men det har inte någon användbar filer bortsett från Arduino koden, som jag behövde för att redigera ändå men om du chef över till min hemsida jag har lagt upp en schematisk som kan öppnas och redigeras i Diptrace finns här http://www.diptrace.com
Min webbplats här https://sites.google.com/site/jfordham83/Creations/UV-box
Rutan UV LED PCB exponering består av ett antal delar de är;
The Paperduino - som jag gjorde efter denna guide http://txapuzas.blogspot.com/2010/07/paperduino-stripboard.html
Paperduino är kontrollen för rutan UV LED PCB-exponering, kan du välja exponeringstiden och visar sedan en nedräkning av exponeringstiden. Den kontrollerar också UV panelen med hjälp av en IRF530 Mosfet som visar panelen UV LED när exponeringen startas och när exponeringen slutar. Detta är en andra strip styrelsen tillsammans med de flesta av ledningarna.
** Uppdatering **
Här Arduino koden:
/*
Arduino koden för grundläggande timer kontroll DIY
Enkelsidig UV LED PCB exponering lightbox.
Använder två SPST knappen växlar att öka och minska
minuter och sekunder timer kontroll och en tredje SPST
knappen Växla till starta timing ordning.
När initierats, avgifter arduino chip IRF520 grinden
PIN-för att växla på 12V DC power adapter belastning till UV
LEDDE matrisen att påbörja exponeringsperioden foto.
Krets:
LCD-RS stift till digital stift 12
LCD-aktivera stift till digital stift 11
LCD-D4 stift till digital stift 5
LCD-D5 stift till digital stift 4
LCD-D6 stift till digital stift 3
LCD-D7 stift till digital stift 2
LCD pottkontroll läsa till potten center
LCD potten ändar till + 5V och jord
Digital stift 7 till PN100 bas stift
Digital stift 13 till piezo summern
Digital stift 9 till SPST startknapp
Digital stift 6 till SPST upp knappen
Digital stift 8 till SPST ner knappen
Av Quinton Pratt (http://innerqube.com)
April 2010 redigerad av James Fordham
*/
inkludera LCD bibliotek-koden:
#include < LiquidCrystal.h >
int startPin = 9; Start knappen pin
int Uppi = 6; upp knappen pin
int downPin = 8; ned knappen pin
int transistorPin = 7. transistor bas pin
int buzzerPin = 13. piezo summern pin
int upRead1 = 0; variabel att läsa upp knappen
int upRead2 = 0; Debounce variabel för upp knappen
int downRead1 = 0; variabel att läsa ner knappen
int downRead2 = 0; Debounce variabel för ned-knappen
int startRead1 = 0; variabel att läsa start-knappen
int startRead2 = 0; Debounce variabel för start-knappen
int timerCount = 0; variabel för timerinställningen
int minutesCount = 0; minuter värde
int secondsCount = 0; sekunder värde
initiera bibliotek med numrerar av gränssnittet stiften
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {
LCD.Print ("UV LED Lightbox");
Delay(1000);
LCD.Clear();
LCD.Print ("exponeringstid?");
pinMode (transistorPin, produktionen);
pinMode (buzzerPin, produktionen);
pinMode (startPin, ingång);
pinMode (Uppi, indata);
pinMode (downPin, ingång);
Serial.BEGIN(9600); Öppna serieporten
}
void lcdWrite()
{
lcd.setCursor (0, 0); Ställ in markören till toppen vänster
LCD.Print(minutesCount); skriva ut minuter värde
lcd.setCursor (3, 0); Ställ markören på andra sidan av minuter värde
LCD.Print("min"); skriva ut min sträng
lcd.setCursor (7, 0); ställa markören ytterligare rätt
LCD.Print(secondsCount); skriva ut sekunder värde
lcd.setCursor(10,0); ställa markören ytterligare rätt
LCD.Print("SEC"); skriva ut SEK sträng
}
void loop() {
Läs alla tre knappar
upRead1 = digitalRead(upPin);
downRead1 = digitalRead(downPin);
startRead1 = digitalRead(startPin);
Debounce läsa för alla tre knappar
Delay(10);
upRead2 = digitalRead(upPin);
downRead2 = digitalRead(downPin);
startRead2 = digitalRead(startPin);
sakta ner knappen värde ändra hastighet
Delay(100);
om upp-knappen öka timer räkna och skriva ut till lcd
om (upRead1 == upRead2 & & upRead1 == hög)
{
LCD.Clear(); Rensa skärmen
secondsCount = secondsCount + 5. ökar värdet i SEK intervall
IF(secondsCount==60) //increment minut & resten SEK för varje 60 SEK
{
minutesCount ++;
secondsCount = 0;
}
lcdWrite(); skriva ut värden
}
om ned-knappen intryckt minska timer räkning och skriver ut till lcd
om (downRead1 == downRead2 & & downRead1 == hög)
{
LCD.Clear(); tydlig lcd
secondsCount = secondsCount-5; stegvis minskning minut & återställa SEK för varje 60 SEK
IF(minutesCount>0) //if mer än en minut kvar
{
IF(secondsCount==-5) / / återställa SEK värdet på -5 till 55 & minska minut
{
secondsCount = 55.
minutesCount--;
}
annat
{
IF(secondsCount<0) //if nedräkningen klar, Återställ värden till noll
{
secondsCount = 0;
minutesCount = 0;
}
}
}
lcdWrite();
IF(secondsCount<0)
{
secondsCount = 0;
LCD.Clear();
LCD.Print("0");
}
}
Om du trycker på startknappen aktivera transistor bas och
Tryck timer räkna ner till LCD-
Aktivera summern för att signalera slutet av greve
om (startRead1 == startRead2 & & startRead1 == hög)
{
timerCount = (minutesCount * 60) + secondsCount;
int timerCount2 = timerCount;
Serial.println(timerCount);
för (int jag = timerCount; jag > 0; i--)
{
LCD.Clear();
IF(timerCount2>60)
{
minutesCount = timerCount2/60.
secondsCount = timerCount2% 60.
}
annat if(secondsCount==60)
{
secondsCount = 59.
}
annat
{
minutesCount = 0;
secondsCount = timerCount2;
}
lcdWrite();
Skicka transistor bas pin hög
digitalWrite (transistorPin, hög);
Delay(1000);
timerCount2--;
}
LCD.Clear();
LCD.Print("donE");
Inaktivera transistor
digitalWrite (transistorPin, låg);
slå på piezo summern
analogWrite (buzzerPin, 255);
Delay(2000);
stänga av piezo summern
analogWrite (buzzerPin, 0);
Delay(2000);
LCD.Clear();
LCD.Print ("exponeringstid?");
Reset timer-värden
timerCount = 0;
minutesCount = 0;
secondsCount = 0;
}
}
Kontrollpanelen - detta görs upp på 3 taktil switchar, vilket öka, minska och börja exponeringen. Och en Piezo speaker att berätta när exponeringen är komplett.
LCD -skärmen - används för att Visa exponeringstid och visar meddelandet "gjort" när komplett, som kan berätta för mig var denna hänvisning kommer ifrån? :-)
Och slutligen
The UV LED Panel - denna består av 84 UV LED varje rad med 3 LED är att ha egen 100 ohms motstånd också. Jag har tagit en jpg på PCB och som ni kan se finns möjligheten att lägga till en extra 21 lysdioder och resistorer om du ville öka området exponering men mitt nätaggregat inte skulle tillåta för dessa extra LED'S.
LED specifikationer:
Framåt spänning: 3.2-3.6
Vidarebefordra strömmen: 20mA
MCD: 3.000
Lins färg: Vatten klart
Avger färg: UV
Storlek: 5mm
Rutan UV LED PCB exponering används till 12v 600mA nätaggregat (1 för panelen UV) & 1 för allt annat den sista 2 föreställningen första test exponering PCB och PCB jag gjort för min Arduino "Word Clock". Övergripande jag är mycket nöjd med hur det kom ut och tänker använda det snart igen.
** Uppdatering **
Här är en kort video av rutan UV LED PCB exponering i drift
Jag hoppas ni finner detta användbara och varför inte prova att göra en själv?
** Uppdatering **
Jag trodde det skulle vara en bra idé att förklara hur rutan exponering fungerar, lol
Så i princip rutan exponering kan du ta du utformade PCB och göra en användbar PCB, att göra detta när du använder särskilda PCB kallas fotoresist PCB dessa har en beläggning som gör dem känsliga för UV-ljus.
När du har din PCB design och särskilda fotoresist PCB, måste du göra en mask av din design att överföra detta till PCB, gör jag detta genom att skriva ut min design på en bit över huvudet projektet papper.
Du ta bort det skyddande lagret från din fotoresist PCB och plats du mask ovanpå, sätta detta i rutan exponering för runt 3mins, när detta är gjort du måste låsa exponeringen genom att utveckla din fotoresist PCB i fotoresist utvecklare.
När du har gjort detta, bör din design vara synlig på PCB och du är redo att etch din PCB i järnklorid.
Hoppas det gör det lite tydligare :-)
Tack för att titta