Σχηματική λειτουργία :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZVSlsFv_Kv8q6cnld5i5VkvuqPFjhRomw9cOM28PdRFqJDc5yCIcZZf3hQDcdAQc51sMqdbawz5GN55-fWB0a8gt_0wF6CFmesKLl_AFang1arkg2Q9xJ3bnmOKaQx2_hMYDpVigG2dKU/s320/optocoupler.jpg)
Στο παράδειγμα χρησιμοποιώ το 4N25 και "οδηγώ" το digital pin 13 του Arduino για να ανοίγω/κλείνω το LED του optoisolator και κατ' επέκταση, το διακόπτη του εξωτερικού κυκλώματος.
Υλικά HW:
1. 4N25 optoisolator
2. αντίσταση R=220Ω (οτιδήποτε από 220Ω-550Ω είναι οκ)
3. εξωτερικό κύκλωμα με push button (δείτε στο βίντεο τι κύκλωμα χρησιμοποίησα)
Συνδεσμολογία:
1. Arduino Pin13 -> R -> A(4N25)
2. Arduino GND -> B(4N25)
3. C(4N25) -> Vcc switch of ext. circuit (βλ. φώτο)
4. D(4N25) -> GND switch of ext. circuit (βλ. φώτο)
Φώτο κυκλώματος:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTzcibfZL_gz2eVOYbpIdiAgMOd5dw4ocJXjbssrDk37o4jXkstCEQG31ftpcP19BHUQ9EvLioitnuMMPtkvUui-jGqTBHgkcixubyUmEpRjXgE-KtvAPJDvLvD16EFM0gdJ9zKaofiYSh/s320/2011-04-16+23.11.34.jpg)
sketch code:
// 4N25 test sketch
#define INTERVAL_TM 4000 //time interval
#define EXPOSURE_TM 1000 //pin 13 HIGH duration
#define LED_PIN 13 //use LED pin as output
void setup() {
pinMode(LED_PIN, OUTPUT); //set pin13 as output
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(EXPOSURE_TM);
digitalWrite(LED_PIN, LOW);
delay(INTERVAL_TM);
}
Βίντεο δοκιμής.
Θεωρία για optoisolator εδώ, εδώ κι εδώ ;)
Τέλος, για την ίδια δουλειά υπάρχουν relay (τα ρελέ είναι συνήθως πιο "αργά" από optoisolator) και H-bridge(ικανά να "οδηγούν" μεγαλύτερα ρεύματα πχ dc/stepper/servo motors κτλ)