O projektu
Materijal iz razgovora „Перевод и использование Arduino“: prevod sadržaja dva kompleta, namena komponenti, povezivanje na UNO i IR predajnik sa tranzistorom. Količine su preuzete sa fotografija kompleta, ne iz pretpostavki o svim kompletima.
Ovo su zasebni obrazovni eksperimenti. Isti pinovi se ponavljaju u različitim primerima: šeme se ne povezuju istovremeno. Proveriti model i raspored izvoda konkretnog modula pre uključivanja.
Početni UNO komplet
Referentne fotografije tipičnih komponenti. Model, kućište i raspored pinova vaše serije mogu se razlikovati; povezivanje proverite prema oznakama, ne prema fotografiji.
| Naziv na fotografiji | Količina | Namena |
|---|---|---|
| UNO R3 CH340 | 1 | Ploča za skice i upravljanje ulazima/izlazima. |
| Sound sensor | 1 | Senzor zvuka: pljesak i relativni signal, ne merač decibela. |
| DHT11 | 1 | Temperatura i vlažnost vazduha. |
| Soil moisture | 1 | Otporni senzor vlažnosti zemljišta; potrebna je kalibracija. |
| Water level | 1 | Provodne staze otkrivaju vodu i njen nivo. |
| 7-segment display | 1 | Jednocifreni displej; proveriti zajedničku anodu/katodu. |
| 74HC595 | 1 | Pomerački registar: osam izlaza uz tri upravljačke linije. |
| Active buzzer | 1 | Aktivna zujalica sa ugrađenim oscilatorom. |
| Passive buzzer | 1 | Pasivna zujalica za melodije i tone(). |
| Potentiometer | 2 | Podesivi delitelj napona za A0. |
| Breadboard 830 | 1 | Eksperimentalna ploča; proveriti prekide naponskih šina. |
| Dupont M/F | 20 | Kablovi muško–žensko za module. |
| Dupont M/M | 20 | Kablovi muško–muško za eksperimentalnu ploču. |
| USB cable | 1 | Napajanje i učitavanje programa; potreban je kabl za podatke. |
| Push button | 5 | Tasteri; mogu se koristiti sa INPUT_PULLUP. |
| Tilt switch | 1 | Mehanički prekidač nagiba. |
| Photoresistor | 2 | Fotootpornik za relativno osvetljenje. |
| Thermistor | 2 | Termistor; za °C potrebni su parametri konkretnog NTC-a. |
| RGB LED | 1 | Tri boje u jednom kućištu; tri zasebna otpornika. |
| LED | 25 | Obične LED diode; svaka zahteva ograničenje struje. |
| Resistors | 100 | Ograničenje struje i delitelji; proveriti vrednosti pre sklapanja. |
37 modula: namena i pinovi
Referentne fotografije tipičnih komponenti. Model, kućište i raspored pinova vaše serije mogu se razlikovati; povezivanje proverite prema oznakama, ne prema fotografiji.
Za module predviđene za 5 V: VCC/+ → 5V UNO, GND/− → GND UNO. Tabela prikazuje signalne veze. Ne pretpostavljati raspored tri izvoda prema izgledu: razlikuje se. AO je analogni izlaz, DO/OUT digitalni izlaz, S signal, IN upravljački ulaz.
| Br. / naziv na slici | Namena | Signal UNO | Napomena | Skica |
|---|---|---|---|---|
| 1. Joystick | Džojstik: dve ose i taster | VRx → A0; VRy → A1; SW → D2 | Taster INPUT_PULLUP. | joystick |
| 2. Flame | Senzor IR zračenja plamena | AO → A0 / DO → D2 | Nije protivpožarni alarm. | analog_input / digital_input |
| 3. RGB LED | Mešanje tri boje | R → D9; G → D10; B → D11 | 330 oma po kanalu; zajednička anoda zahteva inverziju. | rgb |
| 4. Heartbeat | Optički eksperiment sa pulsom | S → A0 | Nije medicinski uređaj; sirovi signal nije BPM. | analog_input |
| 5. Light Cup | Nagib i LED | S → D2; L → D9, ako postoji | Proveriti zasebne izvode senzora i LED-a. | digital_input |
| 6. Hall magnetic | Detekcija magneta | S/DO → D2 | Digitalni izlaz; polaritet zavisi od ploče. | digital_input |
| 7. Relay | Preklapanje niskonaponskog opterećenja | IN → D7 | Samo modul sa drajverom; bez 230 V. | relay_safe |
| 8. Linear Hall | Analogni magnetni signal | AO/S → A0 | Bez magneta često oko sredine opsega. | analog_input |
| 9. SMD RGB | RGB na ploči | R → D9; G → D10; B → D11 | Proveriti otpornike i zajednički izvod. | rgb |
| 10. 7 color flash | Automatska promena boja | Prema oznaci napajanja | Ne pretpostavljati da je S logički ulaz; proveriti struju i otpornik. | — |
| 11. Tilt switch | Nagib | S → D2 | Mehanički kontakt može poskakivati. | digital_input |
| 12. TEMP18B20 | Temperatura DS18B20 | DATA → D2 | Pull-up 4,7 kilooma ka 5 V ako nedostaje na modulu. | ds18b20 |
| 13. Big sound | Mikrofon i prag pljeska | AO → A0 / DO → D2 | Ovo nisu kalibrisani decibeli. | analog_input / digital_input |
| 14. Touch | Senzor dodira | S → D2 | Nivo mirovanja zavisi od modela. | digital_input |
| 15. Two-color LED | Dvobojna LED | R → D9; G → D10 | Zaseban otpornik za svaki kanal. | rgb, samo R/G |
| 16. Laser emit | Laserski emiter | Napajanje preko tranzistorskog drajvera | Ne povezivati naponski ulaz na GPIO; ne usmeravati ka očima. | — |
| 17. Ball switch | Kuglični prekidač položaja | S → D2 | Proveriti kontakt i poskakivanje. | digital_input |
| 18. Analog temp | NTC sa analognim izlazom | AO/S → A0 | Za °C potrebni su parametri i šema delitelja. | analog_input |
| 19. Small sound | Mali senzor zvuka | AO → A0 ili DO → D2 | Ne spajati AO i DO zajedno. | analog_input / digital_input |
| 20. Digital temp | Temperaturni prag komparatora | DO → D2 | Izlaz 0/1, ne digitalna vrednost °C. | digital_input |
| 21. Small two-color | Mala dvobojna LED | R → D9; G → D10 | Proveriti zajedničku anodu/katodu i otpornike. | rgb, samo R/G |
| 22. Button | Taster na modulu | S → D2 | Za goli taster: D2–taster–GND, INPUT_PULLUP. | button |
| 23. Photoresistor | Osvetljenje | AO/S → A0 | Sirovi nivo, ne luksi. | analog_input |
| 24. IR emission | IR predajnik | Upravljanje → D3 | Gola IR LED zahteva otpornik i tranzistorski drajver. | ir_send_nec |
| 25. Tracking | Praćenje linije i refleksija | OUT → D2 | Podesiti prag na svojoj podlozi. | digital_input |
| 26. Active buzzer | Zvučni signal stalnog tona | S → D8, za logički ulaz | Snažna/gola zujalica koristi drajver, ne direktno GPIO. | active_buzzer |
| 27. Reed switch | Reed prekidač za magnet | S → D2 | Kontaktima treba pull-up; možda je već na modulu. | digital_input |
| 28. Shock | Vibracija | S → D2 | Kratki impulsi mogu biti propušteni pri očitavanju. | digital_input |
| 29. Temp & humidity | DHT11: temperatura i vlažnost | DATA → D2 | Očitavanje svake 2 sekunde; DATA pull-up po potrebi. | dht11 |
| 30. IR receive | Prijem komandi daljinskog | OUT → D2 | Proveriti napon i raspored izvoda prijemnika. | ir_receive |
| 31. Avoid | IR senzor prepreke | OUT → D2 | Refleksija zavisi od boje, svetla i udaljenosti. | digital_input |
| 32. Passive buzzer | Tonovi različitih frekvencija | S → D8 | Proveriti struju; tone() može biti u konfliktu sa IR/PWM. | passive_buzzer |
| 33. Mini reed | Mali reed prekidač | S → D2 | Stanje zavisi od magneta. | digital_input |
| 34. Rotary encoder | Rotacija i pritisak | CLK → D2; DT → D3; SW → D4 | Za stabilno brojanje potreban je dekoder sa filtriranjem kontakata. | encoder_signals |
| 35. Analog Hall | Analogni Hall senzor | AO/S → A0 | Tip i osetljivost proveriti prema oznaci. | analog_input |
| 36. Tap | Udar/kucanje | S → D2 | Razlikovati impuls od stalnog nivoa. | digital_input |
| 37. Light blocking | Optički prekidač | OUT/S → D2 | Zastavica prekida svetlost u prorezu. | digital_input |
Prvo pokretanje UNO-a
- Početi sa USB napajanjem, bez spoljnog izvora i opterećenja. Koristiti kabl za prenos podataka.
- U Arduino IDE izabrati Arduino Uno i port ploče. CH340 je USB–serijski pretvarač; ako nema porta, proveriti kabl i drajver proizvođača.
- Učitati ugrađeni Blink, pa led_blink iz arhive. Za spoljašnju LED: D8 → 330 oma → anoda, katoda → GND.
- Za Serial primere otvoriti monitor na 9600 baud. A0 obično daje 0–1023; to još nisu stepeni, procenti, luksi ili BPM.
- Menjati veze bez napajanja. Prvo proveriti jedan modul, pa kombinovati uz novu raspodelu pinova.
Ne dovoditi 12 V na ulaze ili vod 5V. Ovaj projekat opisuje UNO R3 sa ATmega328P, ne UNO R4 ili ESP32.
Osnovne veze
| Komponenta | Veza | Primer |
|---|---|---|
| Potenciometar | Krajnji izvodi → 5V i GND; srednji klizač → A0. | analog_input |
| Taster bez modula | D2 → taster → GND; INPUT_PULLUP. Pritisak daje LOW. | button |
| Fotootpornik | 5V → LDR → čvor A0 → 10 kilooma → GND. | analog_input |
| NTC termistor | 5V → NTC → čvor A0 → 10 kilooma → GND; °C tek kada su poznati R25/B. | analog_input |
| RGB, zajednička katoda | Katoda → GND; R/G/B preko zasebnih 330 oma → D9/D10/D11. | rgb |
| RGB, zajednička anoda | Anoda → 5V; kanali preko zasebnih 330 oma → D9/D10/D11; COMMON_ANODE=true. | rgb |
| Vlažnost zemljišta / voda | Analogni izlaz → A0, napajanje prema oznaci; kalibrisati suvo/vlažno stanje. | analog_input |
| 7-segmentni displej | Utvrditi zajedničku anodu/katodu i izvode a–g; poseban otpornik po segmentu. | Nema univerzalnog rasporeda |
Duge naponske šine eksperimentalne ploče mogu biti prekinute u sredini. Proveriti multimetrom. Otporni senzori vode/zemljišta korodiraju pod stalnim napajanjem; uključivati samo tokom merenja i ne koristiti za pitku vodu ili opasne tečnosti.
74HC595 i indikatori
| Izvod 74HC595 | UNO |
|---|---|
| 16 VCC | 5V |
| 8 GND | GND |
| 14 SER / DS | D11 |
| 11 SRCLK / SH_CP | D12 |
| 12 RCLK / ST_CP | D8 |
| 10 SRCLR / MR | 5V |
| 13 OE | GND |
Postaviti 100 nF između VCC i GND blizu čipa. Za početni test koristiti jednu LED u trenutku: QA/QB/… → 1 kiloom → anoda LED, katoda → GND. Skica shift_register pomera samo jedan uključen bit.
74HC595 nije snažni drajver. Poštovati struju po izlazu i ukupnu struju iz dokumentacije. Za svetao višesegmentni displej potreban je odgovarajući drajver, ne nasumično smanjivanje otpornika. Raspored 7-segmentnog displeja određuje se prema oznaci modela.
Senzori i biblioteke
Preko Arduino IDE menadžera biblioteka instalirati: DHT sensor library by Adafruit i zavisnost Adafruit Unified Sensor; DallasTemperature i OneWire; IRremote za IR primere. Ostali primeri koriste standardno Arduino jezgro.
- DHT11: VCC → 5V, GND → GND, DATA → D2. Goli senzor zahteva DATA pull-up prema dokumentaciji; modul ga često već ima. dht11 proverava grešku i čeka 2 sekunde.
- DS18B20: VDD → 5V, GND → GND, DATA → D2, DATA pull-up 4,7 kilooma ka 5V ako nedostaje. Ne pretpostavljati izvode TO-92 ili boje žica.
- Temperaturni modul sa komparatorom nije DS18B20: daje samo stanje praga.
- Primeri tone(), PWM i IR pokreću se zasebno. Pre kombinovanja proveriti sukobe tajmera za UNO i verziju IRremote.
IR predajnik i klima-uređaj
IR prijemnik: napajanje prema dokumentaciji, zajednički GND, OUT → D2. Skica ir_receive prikazuje komande običnog daljinskog. ir_send_nec šalje obrazovne NEC podatke sa D3; to nije univerzalna komanda klime.
Tranzistorski drajver za zasebnu IR LED
| Od | Do |
|---|---|
| D3 UNO | Preko 1 kilooma → B (baza) BC337 |
| B BC337 | Preko 10 kilooma → E (emiter) |
| E BC337 | GND UNO i minus napajanja |
| C BC337 | Katoda IR LED |
| +5V | Preko izračunatog otpornika R → anoda IR LED |
BC337 i dodatni otpornici nisu potvrđeni u kompletu i možda ih treba nabaviti zasebno. Proveriti B/C/E prema dokumentaciji konkretnog tranzistora. Ne određivati izvode samo prema ravnoj strani kućišta.
R = (5 V − Vf LED − VCE tranzistora) / odabrana struja. Za Vf=1,2 V, VCE≈0,2 V i 20 mA dobija se 180 oma. Ovo je primer računa, ne specifikacija nepoznate LED: struju, impulse i otpornik proveriti prema njenoj dokumentaciji. Ne uklanjati otpornik; dve LED zahtevaju odvojene grane sa otpornicima. Domet zavisi od emitera, usmerenja, prijemnika i struje i ovde nije proveren.
Zašto NEC nije univerzalna komanda klime
Mnoge klime šalju celo stanje — temperaturu, režim, brzinu i druga polja. Potrebni su tačna marka/model, podržani protokol ili pravilno snimljen signal, odgovarajuća noseća frekvencija i dovoljno memorije. IRremoteESP8266 je za ESP8266/ESP32, ne UNO. Za stvarnu klimu prvo proveriti podršku modela u biblioteci; ovde nema gotovog programa za nepoznatu klimu. IR kontrola ne zahteva otvaranje mrežnog dela klima-uređaja.
15 primera skica
Arhiva sadrži 15 nezavisnih skica. Otvoriti .ino iz istoimene fascikle i izabrati UNO. Ne otvarati sve primere kao kartice jedne skice.
led_blink
Spoljna LED sa 330 oma, D8.
const byte LED_PIN = 8;
void setup() { pinMode(LED_PIN, OUTPUT); }
void loop() {
digitalWrite(LED_PIN, HIGH); delay(500);
digitalWrite(LED_PIN, LOW); delay(500);
}
analog_input
A0: potenciometar, analogni izlaz ili delitelj.
void setup() { Serial.begin(9600); }
void loop() {
Serial.println(analogRead(A0));
delay(100);
}
digital_input
D2: digitalni izlaz modula. Suvom kontaktu treba pull-up.
void setup() {
Serial.begin(9600);
pinMode(2, INPUT); // Powered module output, not a floating contact.
}
void loop() {
Serial.println(digitalRead(2));
delay(50);
}
button
Taster D2–GND, unutrašnji pull-up.
void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); }
void loop() {
Serial.println(digitalRead(2) == LOW ? "PRESSED" : "RELEASED");
delay(50);
}
joystick
Ose A0/A1, taster D2.
void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); }
void loop() {
Serial.print(analogRead(A0)); Serial.print(' ');
Serial.print(analogRead(A1)); Serial.print(' ');
Serial.println(digitalRead(2)); delay(100);
}
rgb
Tri zasebna otpornika; zajednička anoda bira se konstantom.
const bool COMMON_ANODE = false;
void channel(byte pin, byte value) {
analogWrite(pin, COMMON_ANODE ? 255 - value : value);
}
void setup() { pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); }
void loop() {
channel(9,255); channel(10,0); channel(11,0); delay(800);
channel(9,0); channel(10,255); channel(11,0); delay(800);
channel(9,0); channel(10,0); channel(11,255); delay(800);
}
active_buzzer
Samo logički ulaz modula sa drajverom.
// For a module with a logic input and a driver only.
const byte BUZZER = 8;
const bool ACTIVE_LOW = false;
void setup() {
digitalWrite(BUZZER, ACTIVE_LOW ? HIGH : LOW);
pinMode(BUZZER, OUTPUT);
}
void loop() {
digitalWrite(BUZZER, ACTIVE_LOW ? LOW : HIGH); delay(100);
digitalWrite(BUZZER, ACTIVE_LOW ? HIGH : LOW); delay(1900);
}
passive_buzzer
Pasivna zujalica dozvoljene struje na D8.
void setup() { pinMode(8, OUTPUT); }
void loop() {
tone(8, 1000); delay(200);
noTone(8); delay(1800);
}
relay_safe
Relej modul na D7 bez opterećenja; primer ga ostavlja isključenim.
// No load connected. Confirm module polarity before power-up.
const byte RELAY_PIN = 7;
const bool ACTIVE_LOW = true;
void setup() {
digitalWrite(RELAY_PIN, ACTIVE_LOW ? HIGH : LOW);
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {} // This example leaves the relay OFF, it does not switch a load.
encoder_signals
Sirovi CLK/DT/SW, nije gotov brojač rotacije.
// Raw signals only, not a debounced rotation counter.
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP);
}
void loop() {
Serial.print(digitalRead(2)); Serial.print(' ');
Serial.print(digitalRead(3)); Serial.print(' ');
Serial.println(digitalRead(4)); delay(20);
}
shift_register
74HC595: jedna LED u trenutku, po 1 kiloom.
const byte DATA_PIN = 11, CLOCK_PIN = 12, LATCH_PIN = 8;
void setup() {
pinMode(DATA_PIN, OUTPUT); pinMode(CLOCK_PIN, OUTPUT); pinMode(LATCH_PIN, OUTPUT);
}
void loop() {
for (byte bit = 0; bit < 8; bit++) {
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, byte(1U << bit));
digitalWrite(LATCH_PIN, HIGH); delay(300);
}
}
dht11
DHT11 i Adafruit DHT/Unified Sensor.
#include <DHT.h>
DHT dht(2, DHT11);
void setup() { Serial.begin(9600); dht.begin(); }
void loop() {
delay(2000);
float humidity = dht.readHumidity(), temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) { Serial.println("DHT read failed"); return; }
Serial.print(temperature); Serial.print(" C; ");
Serial.print(humidity); Serial.println(" %");
}
ds18b20
DS18B20 i OneWire/DallasTemperature.
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire bus(2);
DallasTemperature sensors(&bus);
void setup() { Serial.begin(9600); sensors.begin(); }
void loop() {
sensors.requestTemperatures();
float value = sensors.getTempCByIndex(0);
if (value == DEVICE_DISCONNECTED_C) Serial.println("Sensor disconnected");
else { Serial.print(value); Serial.println(" C"); }
delay(1000);
}
ir_receive
IRremote, OUT prijemnika D2.
#include <IRremote.hpp>
void setup() { Serial.begin(9600); IrReceiver.begin(2, DISABLE_LED_FEEDBACK); }
void loop() {
if (IrReceiver.decode()) {
IrReceiver.printIRResultShort(&Serial);
IrReceiver.resume();
}
}
ir_send_nec
IRremote, D3 preko drajvera; samo obrazovna NEC komanda.
#define IR_SEND_PIN 3
#include <IRremote.hpp>
void setup() { IrSender.begin(); }
void loop() {
IrSender.sendNEC(0x00, 0x45, 0); // Test data, NOT an arbitrary AC command.
delay(3000);
}
Ograničenja i provera
- Relej: samo niskonaponska obrazovna opterećenja. Ne povezivati mrežu 230 V na eksperimentalnu ploču. Gola zavojnica se ne povezuje direktno na pin.
- GPIO je upravljački signal, ne napajanje motora, lasera ili snažne zujalice. Opterećenje zahteva odgovarajući drajver i zajednički GND.
- Ne usmeravati laser u oči, ljude ili ogledala. Ne uključivati nepoznat modul bez provere napajanja i struje.
- Flame i Heartbeat nisu zamena za sertifikovani protivpožarni/medicinski uređaj.
- Hall senzori mogu brojati impulse, ali RPM zahteva broj magneta i period merenja. Ne postavljati nesigurne/neuravnotežene magnete na brzi ventilator.
- Fotografije ne prikazuju tačan raspored izvoda svake ploče. Proveriti pinove, aktivni nivo, napon, vrednosti i biblioteke za svoj komplet.
Materijal je pripremljen iz razgovora; fizička provera svih 37 modula i upravljanja klimom nije potvrđena. Potvrda prethodnog stroboskopa ne odnosi se na Arduino KIT.
Izvori
Osnova: razgovor „Перевод и использование Arduino“ i dve fotografije kompleta. Kompatibilnost ploča i biblioteka proverena je prema dokumentaciji autora 10. oktobra 2026.