Πίνακας περιεχομένων:

I2C InfraRed Τηλεχειριστήριο με το Arduino: 8 βήματα (με εικόνες)
I2C InfraRed Τηλεχειριστήριο με το Arduino: 8 βήματα (με εικόνες)

Βίντεο: I2C InfraRed Τηλεχειριστήριο με το Arduino: 8 βήματα (με εικόνες)

Βίντεο: I2C InfraRed Τηλεχειριστήριο με το Arduino: 8 βήματα (με εικόνες)
Βίντεο: ESP8266 Diesel Injector Purging Station - PWM NodeMCU pump flow Control (Subtittled) 2024, Νοέμβριος
Anonim
I2C InfraRed Τηλεχειριστήριο με το Arduino
I2C InfraRed Τηλεχειριστήριο με το Arduino
I2C InfraRed Τηλεχειριστήριο με το Arduino
I2C InfraRed Τηλεχειριστήριο με το Arduino

PreambleThis Instructable περιγράφει λεπτομερώς τον τρόπο δημιουργίας ενός καθολικού τηλεχειριστηρίου χρησιμοποιώντας το I2C για τη διεπαφή.

Πόσο περίεργο λέτε, χρησιμοποιώντας μια συσκευή σκλάβων I2C;

Ναι, μια συσκευή I2C slave.

Αυτό οφείλεται στο γεγονός ότι ο ακριβής χρονισμός των πακέτων IR είναι αρκετά απαιτητικός και με ένα τυπικό Arduino θα δυσκολευτεί αν εκτελεί ήδη πολλές άλλες εργασίες ταυτόχρονα. Είναι καλύτερα να κατανέμετε το υπολογιστικό φορτίο αναθέτοντας εντατικές δραστηριότητες χρονισμού σε ειδικούς επεξεργαστές όποτε είναι δυνατόν (καλύτερα να το κάνετε ακόμα σε υλικό). Δεδομένου ότι το I2C είναι μια καλά τεκμηριωμένη και ισχυρή μέθοδος επικοινωνίας μεταξύ IC, επέλεξα αυτό ως διεπαφή.

Εισαγωγή

Όπως αναφέρθηκε παραπάνω, αυτό το διδακτικό περιγράφει πώς να ελέγχετε οικιακές συσκευές όπως τηλεόραση, DVD player και δορυφορικά κ.λπ. χρησιμοποιώντας τη βιβλιοθήκη IRremote στο Arduino.

Ολοκληρώνεται με ένα παράδειγμα σχεδιασμού που μετατρέπει το Arduino σε μονάδα τηλεχειριστηρίου I2C slave (εικόνα 1 παραπάνω) με πρωτότυπο κύκλωμα δοκιμής (εικόνα 2 παραπάνω) και συνεχίζει λεπτομερώς πώς να συρρικνώσετε το σχέδιό σας στα ελάχιστα απαραίτητα εξαρτήματα, ώστε να μπορεί ενσωματωμένο σε άλλο σχέδιο. Στην περίπτωσή μου, χρησιμοποιώ αυτήν την ενσωματωμένη συσκευή σε μια συσκευή τηλεχειρισμού IoT Universal που βασίζεται σε ένα ESP8266-12E.

Τι μέρη χρειάζομαι;

Για να δημιουργήσετε το κύκλωμα που απεικονίζεται στο βήμα 1 (πομπός IR) θα χρειαστείτε τα ακόλουθα μέρη.

  • 2 από 10K αντιστάσεις
  • 1 αντίσταση 390R
  • 1 αντίσταση 33R
  • 1 έκπτωση 3K8 αντίσταση
  • 1 έκπτωση Κόκκινο LED
  • 1 έκπτωση IR Led TSAL6400
  • 1 από το τρανζίστορ BC337
  • 1 εκτός πυκνωτή 220uF
  • 1 έκπτωση στο Arduino Uno

Για να δημιουργήσετε το κύκλωμα που απεικονίζεται στο βήμα 4 (δέκτης IR) θα χρειαστείτε τα ακόλουθα μέρη.

  • 1 αντίσταση 10Κ
  • 1 έκπτωση TSOP38328
  • 1 εκτός πυκνωτή 220uF
  • 1 έκπτωση στο Arduino Uno

Για να δημιουργήσετε το κύκλωμα που απεικονίζεται στο βήμα 5 (κύκλωμα δοκιμής σκλάβων) θα χρειαστείτε τα ακόλουθα μέρη.

  • 4 off 10K αντιστάσεις
  • 2 αντίσταση 390R
  • 1 αντίσταση 33R
  • 1 έκπτωση 3K8 αντίσταση
  • 2 μακριά κόκκινο LED
  • 1 έκπτωση IR Led TSAL6400
  • 1 από το τρανζίστορ BC337
  • 1 εκτός πυκνωτή 220uF
  • 2 από τα κουμπιά SPST
  • 2 εκτός Arduino Unos

Για να δημιουργήσετε το κύκλωμα που απεικονίζεται στο βήμα 6 (Σμικρυνμένος σχεδιασμός) θα χρειαστείτε τα ακόλουθα μέρη.

  • 3 αντιστάσεις 10Κ
  • 1 αντίσταση 270R
  • 1 αντίσταση 15R
  • 4 off 1K αντιστάσεις
  • 1 έκπτωση Κόκκινο LED
  • 1 έκπτωση IR Led TSAL6400 ή TSAL5300
  • 1 από το τρανζίστορ BC337
  • 1 off πυκνωτής 220uF ηλεκτρολυτικός @ 6,3v
  • 1 off πυκνωτής 1000uF ηλεκτρολυτικός @ 6,3v
  • 2 εκ των πυκνωτών 0.1uF
  • 2 πυκνωτές 22pF
  • 1 έκπτωση 16MHz Xtal
  • 1 έκπτωση ATMega328P-PU

Σημείωση: Θα χρειαστείτε επίσης μια συσκευή FTDI για τον προγραμματισμό του ATMega328P

Τι δεξιότητες χρειάζομαι;

  • Μια ελάχιστη γνώση των ηλεκτρονικών,
  • Γνώση του Arduino και του IDE,
  • Λίγη υπομονή,
  • Κάποια κατανόηση του I2C θα ήταν χρήσιμη (δείτε εδώ για ορισμένες γενικές λεπτομέρειες της I2C/Wire Library).

Θέματα που καλύπτονται

  • Σύντομη επισκόπηση του κυκλώματος,
  • Σύντομη επισκόπηση του λογισμικού,
  • Περιεχόμενο πακέτου I2C,
  • Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data),
  • Πώς να δοκιμάσετε τη συσκευή σας I2C Slave,
  • Συρρικνώνοντας το σχέδιό σας,
  • Συμπέρασμα,
  • Χρησιμοποιήθηκαν αναφορές.

Αποποίηση ευθυνών

Όπως πάντα, χρησιμοποιείτε αυτές τις οδηγίες με δική σας ευθύνη και αυτές δεν υποστηρίζονται.

Βήμα 1: Σύντομη επισκόπηση του κυκλώματος

Σύντομη επισκόπηση του κυκλώματος
Σύντομη επισκόπηση του κυκλώματος

Ο σκοπός του κυκλώματος είναι η μετάδοση κωδικών τηλεχειριστηρίου IR. Ο σχεδιασμός του είναι αρκετά απλός και αρκετά απλός.

Όταν το τρανζίστορ Q1 a BC337 NPN ενεργοποιείται μέσω ενός λογικού από το Arduino PWM O/P D3 στο Resistor R5, το ρεύμα περνάει από τα Leds 1 και 2. Περιορίζεται μόνο από αντιστάσεις έρματος R3 και R4 αντίστοιχα. Το Q1 χρησιμοποιείται για να αυξήσει το ρεύμα που διέρχεται από τη δίοδο IR (IF Max = 100mA) σε εκείνο που υπερβαίνει αυτό που είναι ικανό το Arduino O/P να παρέχει ~ 40mA @ +5v.

Ο πυκνωτής C1 a 220uF Electrolytic παρέχει κάποια σταθεροποίηση αποτρέποντας μια πτώση της ράγας τροφοδοσίας από την ισχύ που αντλείται από τα Leds 1 και 2.

Οι αντιστάσεις R1 και R2 είναι I2C pull ups.

Βήμα 2: Σύντομη επισκόπηση του Λογισμικού

Σύντομη Επισκόπηση του Λογισμικού
Σύντομη Επισκόπηση του Λογισμικού
Σύντομη Επισκόπηση του Λογισμικού
Σύντομη Επισκόπηση του Λογισμικού
Σύντομη Επισκόπηση του Λογισμικού
Σύντομη Επισκόπηση του Λογισμικού

Προοίμιο

Για να μεταγλωττίσετε με επιτυχία αυτόν τον πηγαίο κώδικα θα χρειαστείτε την ακόλουθη επιπλέον βιβλιοθήκη.

IRremote.h

  • Από: z3t0
  • Σκοπός: Απομακρυσμένη βιβλιοθήκη υπερύθρων για το Arduino: αποστολή και λήψη υπέρυθρων σημάτων με πολλά πρωτόκολλα
  • Από:

Επισκόπηση κώδικα

Όπως φαίνεται στην παραπάνω εικόνα 1, κατά την εκκίνηση ο κώδικας διαμορφώνει το μικροελεγκτή εισόδου/εξόδου και στη συνέχεια διερευνά την κατάσταση της εσωτερικής σημαίας λογισμικού "bFreshDataFlag". Όταν ρυθμιστεί αυτή η σημαία, ο ελεγκτής επιβεβαιώνει τη γραμμή "Απασχολημένος" (στέλνοντας χαμηλά τον ακροδέκτη δεδομένων D4) και μεταβαίνει στην κατάσταση "eBUSY" διαδοχικά διαβάζοντας τις εντολές του κουμπιού που διατηρούνται στο uDataArray και αποστέλλοντας τα δεδομένα διαμόρφωσης IR στο IR LED σε ένα ακολουθία μετάδοσης.

Μόλις αποσταλούν πλήρως τα δεδομένα που διατηρούνται στο uDataArray , η κατάσταση "eIDLE" συνεχίζεται και η γραμμή "Απασχολημένος" καταργείται (αποστέλλεται η καρφίτσα δεδομένων D4 υψηλή). Η συσκευή είναι τώρα έτοιμη να λάβει περισσότερα πατήματα κουμπιών που σηματοδοτούν το τέλος της ακολουθίας μετάδοσης.

Λήψη δεδομένων πίεσης κουμπιού IR

Όταν τα δεδομένα αποστέλλονται στο τηλεχειριστήριο InfraRed μέσω I2C ενεργοποιεί μια διακοπή και η κλήση της λειτουργίας ReceEEvent () ενεργοποιείται ασύγχρονα.

Μόλις ενεργοποιηθεί, τα ληφθέντα δεδομένα I2C εγγράφονται διαδοχικά στο buffer 'uDataArray '.

Κατά τη λήψη δεδομένων, εάν ένα τέλος της ακολουθίας σηματοδοτηθεί από τον κύριο (bFreshData! = 0x00) έχει οριστεί το "bFreshDataFlag", σηματοδοτώντας έτσι την έναρξη της ακολουθίας μετάδοσης.

Οι εικόνες 2… 3 δίνουν ένα παράδειγμα τυπικής ακολουθίας πακέτων.

Σημείωση: Ο πλήρης πηγαίος κώδικας είναι διαθέσιμος εδώ

Βήμα 3: Περιεχόμενο πακέτου I2C

Περιεχόμενο πακέτου I2C
Περιεχόμενο πακέτου I2C

Η μορφή του πακέτου ελέγχου που αποστέλλεται στον slave μέσω I2C δίνεται παραπάνω στην εικόνα 1, η έννοια κάθε πεδίου δίνεται παρακάτω

Η έννοια των πεδίων πακέτων ελέγχου

byte κωδικοποίηση;

  • Κωδικοποίηση τηλεχειριστηρίου IR,

    • RC6 (Sky) = 0,
    • SONY = 1,
    • SAMSUNG = 2,
    • NEC = 3,
    • LG = 4

uint32_t ui32Data;

Η εξαγωνική αναπαράσταση της δυαδικής ροής δεδομένων IR 4 byte δεδομένων (χωρίς υπογραφή μακρύ), LSByte… MSByte

byte bNumberOfBitsInTheData;

Αριθμός δυαδικών ψηφίων στα δεδομένα (Μέγιστο 32). Εύρος = 1… 32

byte bPulseTrainReps;

Πόσες επαναλήψεις αυτού του παλμού τρένου. Εύρος = 1… 255. Συνήθως 2… 4 επαναλήψεις. Μπορεί να θέλετε να το επεκτείνετε για τις εντολές ενεργοποίησης/απενεργοποίησης καθώς η συσκευή λήψης απαιτεί μερικές φορές μερικές επιπλέον επαναλήψεις παλμών για να λάβετε σήμα ενεργοποίησης

byte bDelayBetweenPulseTrainRepeats;

Καθυστέρηση μεταξύ επαναλήψεων αυτού του σφυγμού. Εύρος = 1… 255mS. Συνήθως 22mS… 124mS

byte bButtonReps;

Προσομοιώνει το επαναλαμβανόμενο πάτημα του ίδιου κουμπιού (αλλά δεν υποστηρίζει τον τροποποιημένο κώδικα όπως το τηλεχειριστήριο της Apple, απλώς επαναλαμβάνει τον κωδικό του κουμπιού). Εύρος = 1… 256. Προεπιλογή = 1

uint16_t ui16DelayBetweenButtonRepeats;

Καθυστέρηση μεταξύ επαναλήψεων κουμπιών (χωρίς υπογραφή int). 2 byte στο σύνολο LSByte… MSByte. Εύρος = 1… 65535mS. Προεπιλογή = 0mS

byte bFreshData;

  • Νέα δεδομένα. Μια μη μηδενική τιμή. Γράφτηκε τελευταία, ενεργοποιεί την ακολουθία IR TX. Εύρος 0x00… 0xFF

    • Έρχονται περισσότερα πακέτα ελέγχου = 0
    • Αυτό είναι το τελικό πακέτο ελέγχου = Μη μηδενική τιμή 1, 2,… 255

Σημειώστε τη χρήση της οδηγίας μεταγλωττιστή «_packed_». Αυτό γίνεται για να διασφαλιστεί ότι τα δεδομένα είναι πακέτα byte για byte στη μνήμη ανεξάρτητα από το σύστημα προορισμού που χρησιμοποιείται (Uno, Due, ESP8266 κ.λπ.). Αυτό σημαίνει ότι η ένωση μεταξύ RegisterAllocationType και dataArrayType χρειάζεται μόνο διαδοχικά ρολόι εξόδου/ρολόι σε byte από ένα πακέτο ελέγχου, καθιστώντας το λογισμικό TX/RX απλό.

Βήμα 4: Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)

Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)
Απόκτηση κωδικών τηλεχειριστηρίου (ui32Data)

Υπάρχουν τρεις τρόποι με τους οποίους μπορείτε να αποκτήσετε έναν αντίστοιχο κωδικό κλειδιού τηλεχειριστηρίου.

  1. Μέσω καταμέτρησης κομματιών με παλμογράφο,
  2. Αναζητήστε το σε έναν ιστότοπο,
  3. Αποκωδικοποιήστε το απευθείας από τη ροή δεδομένων στο λογισμικό.

Μέσω καταμέτρησης bit με εύρος

Αυτή δεν είναι μια αποτελεσματική μέθοδος καθώς χρειάζεται αρκετός χρόνος και ενδεχομένως απαιτεί περισσότερες από μία προσπάθειες, ωστόσο μπορεί να είναι εξαιρετικά ακριβής. Είναι επίσης χρήσιμο για την οπτική επικύρωση κωδικών που λαμβάνονται με τις μεθόδους 2 και 3, επίσης για τον προσδιορισμό τυχόν ιδιοτήτων ενός τηλεχειριστηρίου. Για παράδειγμα, όταν κρατάτε πατημένο ένα κουμπί σε ένα τηλεχειριστήριο IR της Apple. Το τηλεχειριστήριο θα εκδώσει αρχικά μια ακολουθία εντολών και στη συνέχεια θα ακολουθήσει αυτήν με μια επαναλαμβανόμενη συμπιεσμένη ακολουθία 0xF….

Αναζητήστε το σε έναν ιστότοπο

Η βάση δεδομένων κώδικα τηλεχειριστηρίου στον ιστότοπο Linux Remote Control Remote Control είναι μια καλή πηγή.

Το μειονέκτημα, ωστόσο, είναι ότι ίσως χρειαστεί να δοκιμάσετε μερικούς κωδικούς μέχρι να βρείτε έναν που να λειτουργεί για εσάς. Σως χρειαστεί επίσης να ερμηνεύσετε μερικές από τις παραστάσεις των κωδικών για να τις μετατρέψετε σε ισοδύναμη εξαγωνική μορφή.

Αποκωδικοποιήστε το απευθείας από τη ροή δεδομένων

Χρησιμοποιώντας το κύκλωμα στην εικόνα 1 παραπάνω σε συνδυασμό με το παράδειγμα της βιβλιοθήκης IR απομακρυσμένου 'IRrecvDumpV2.ino', είναι δυνατή η αποκωδικοποίηση της ροής δεδομένων απευθείας από το τηλεχειριστήριο. Η εικόνα 2 δείχνει ένα αποκωδικοποιημένο τηλεχειριστήριο Samsung TV για ένα κουμπί ενεργοποίησης/απενεργοποίησης στο παράθυρο τερματικού Arduino IDE.

Συνδυασμένος δέκτης/πομπός

Οι εικόνες 3 και 4 παραπάνω απεικονίζουν μια λύση που επιτρέπει τόσο τη λήψη όσο και τη μετάδοση της εντολής IR για να επιτρέπει την εύκολη δημιουργία πρωτοτύπων.

Για να αποκωδικοποιήσετε τα κουμπιά τηλεχειριστηρίου IR θα πρέπει να αναβοσβήσετε το Arduino με το παράδειγμα «IRrecvDumpV2.ino» που συνοδεύει τη βιβλιοθήκη IRremote.

Λειτουργεί επίσης εξίσου καλά για μετάδοση εάν εντολές IR. Ένα κόκκινο led περιλαμβάνεται ως οπτική ένδειξη ότι η συσκευή βρίσκεται σε δράση.

Βήμα 5: Πώς να δοκιμάσετε τη βοηθητική συσκευή I2C

Πώς να δοκιμάσετε τη βοηθητική συσκευή I2C
Πώς να δοκιμάσετε τη βοηθητική συσκευή I2C
Πώς να δοκιμάσετε τη βοηθητική συσκευή I2C
Πώς να δοκιμάσετε τη βοηθητική συσκευή I2C

Χρησιμοποιώντας τον πηγαίο κώδικα εδώ, και το κύκλωμα που περιγράφεται παραπάνω στην εικόνα 1, προγραμματίστε το 'Master' Arduino με 'IR_Remote_Sim_Test.ino' και το 'Slave' Arduino με 'IR_Remote_Sim.ino'.

Αν υποθέσουμε ότι έχετε τηλεόραση Sony Bravia, κουτί Sky HD και Sony BT SoundBar, πατήστε το κουμπί 1 και η τηλεόρασή σας θα μεταβεί στο BBC1 (κανάλι 101). Πατήστε το κουμπί 2 και η μπάρα ήχου σας θα τεθεί σε σίγαση. Πατήστε ξανά και θα καταργηθεί η σίγαση.

Κατά την εκτέλεση της ακολουθίας μετάδοσης IR, το LED3 θα ανάψει υποδεικνύοντας ότι ο υποτελής είναι απασχολημένος και το LED1 θα τρεμοπαίζει εσωτερικά με τη διαδικασία μετάδοσης IR.

Φυσικά, αν δεν έχετε ρυθμίσει το ίδιο σύστημα ψυχαγωγίας με το παραπάνω, μπορείτε να προγραμματίσετε εκ νέου τον υπάλληλο με το «IRrecvDumpV2.ino», να αποκωδικοποιήσετε τις απομακρυσμένες εντολές που σας ενδιαφέρουν και, στη συνέχεια, να τις προγραμματίσετε στο «IR_Remote_Sim_Test.ino» για δεδομένο σενάριο.

Η εικόνα 2 δείχνει την επισκόπηση λογισμικού δοκιμής επιπέδου συστήματος μεταξύ Master και Slave.

Βήμα 6: Συρρίκνωση του σχεδίου σας

Συρρίκνωση του σχεδίου σας
Συρρίκνωση του σχεδίου σας

Εντάξει, αν υποθέσουμε ότι ακολουθήσατε αυτό το διδακτικό, η χρήση δύο Arduinos για τον έλεγχο των οικιακών συσκευών σας δεν είναι η πιο αποτελεσματική χρήση των αποθεμάτων σας Arduino. Κατά συνέπεια, αν κατασκευάσετε το κύκλωμα που φαίνεται στην παραπάνω εικόνα και ακολουθήσετε τις οδηγίες εδώ για να προγραμματίσετε το ATMega328P με 'IR_Remote_Sim.ino', θα μπορείτε να μειώσετε ολόκληρο το σύστημα στα ελάχιστα εξαρτήματα. Αυτό θα σας επιτρέψει να ενσωματώσετε το σχέδιό σας σε κάποιο άλλο σύστημα.

Βήμα 7: Συμπέρασμα

συμπέρασμα
συμπέρασμα
συμπέρασμα
συμπέρασμα

Η λύση είναι σταθερή και λειτουργεί καλά, είναι ενσωματωμένη σε άλλο σύστημα εδώ και αρκετές εβδομάδες χωρίς προβλήματα.

Επέλεξα το Arduino Uno R3 καθώς ήθελα μια συσκευή με επαρκή μνήμη RAM ώστε να έχω ένα buffer κουμπιού λογικού βάθους. Συμφωνώ με ένα μέγεθος buffer 20 πακέτων (MAX_SEQUENCES).

Η ασπίδα Hybrid TX/RX που έφτιαξα ήταν επίσης πολύ βολική κατά την αποκωδικοποίηση τηλεχειριστηρίων Sony και Sky. Αν και πρέπει να ομολογήσω ότι χρησιμοποιώ την ψηφιακή εμβέλεια μου κατά καιρούς για να ελέγξω ότι η εντολή αποκωδικοποιημένου λογισμικού IR ήταν η ίδια με αυτήν που προερχόταν από το IR που ελήφθη (TSOP38328).

Το μόνο πράγμα που θα έκανα διαφορετικά θα ήταν να χρησιμοποιούσα το κύκλωμα σταθερού ρεύματος για το IR IR, όπως φαίνεται παραπάνω στην εικόνα 2.

Ένα ακόμη σημείο που πρέπει να σημειωθεί είναι ότι δεν διαμορφώνονται όλοι οι πομποί IR με 38KHz, ο TSOP38328 είναι βελτιστοποιημένος για 38KHz.

Βήμα 8: Χρησιμοποιούνται αναφορές

IRRemote.h

  • Από: z3t0
  • Σκοπός: Απομακρυσμένη βιβλιοθήκη υπερύθρων για το Arduino: αποστολή και λήψη υπέρυθρων σημάτων με πολλαπλά πρωτόκολλα
  • Από:

Απομακρυσμένη βιβλιοθήκη IR

  • z3t0.github.io/Arduino-IRremote/
  • https://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

Αισθητήρας δέκτη IR (υπέρυθρο) - TSOP38238 (ισοδύναμο)

https://cdn-shop.adafruit.com/datasheets/tsop382.pdf

Για να αποφύγετε τη συμπλήρωση δομής δεδομένων στα όρια λέξεων

  • https://github.com/esp8266/Arduino/issues/1825
  • https://github.com/tuanpmt/esp_bridge/blob/master/modules/include/cmd.h#L15
  • https://stackoverflow.com/questions/11770451/what-is-the-meaning-of-attribute-packed-aligned4

Καλή πηγή απομακρυσμένων λεπτομερειών IR

https://www.sbprojects.com/knowledge/ir/index.php

I2C

  • https://playground.arduino.cc/Main/WireLibraryDetailedReference
  • https://www.arduino.cc/en/Reference/WireSend

IR Remote Database

  • https://www.lirc.org/
  • https://lirc-remotes.sourceforge.net/remotes-table.html

BC337 Φύλλο δεδομένων

https://www.onsemi.com/pub/Collateral/BC337-D. PDF

1N4148 Φύλλο δεδομένων

https://www.vishay.com/docs/81857/1n4148.pdf

Συνιστάται: