Google+

Σάββατο, 16 Απριλίου 2011

Using Optoisolator w/ arduino to control other circuits

Μόλις δοκίμασα ένα optoisolator (ή αλλιώς optocoupler) για να ανοίγω/κλείνω (ως διακόπτης) ένα άλλο κύκλωμα με το Arduino. Η αρχή λειτουργίας του optoisolator είναι πολύ απλή, με 2 κυκλώματα οπτικά-απομονωμένα, το πρώτο να αποτελείται από 1 LED και το δεύτερο από 1 phototransistor σε ένα πακέτο DIP. Μόλις ανάψει το LED, το phototransistor διοχετεύει με ρεύμα τον collector/emitter του.

Σχηματική λειτουργία :


Στο παράδειγμα χρησιμοποιώ το 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 (βλ. φώτο)

Φώτο κυκλώματος:


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 κτλ)

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου