Electronica, Arduino, programare

Pentru a controla cu Arduino diversi consumatori mari de curent (motoare, becuri etc) vom folosi un tranzistor MOS-FET. In acest exemplu vom folosi un MOS-FET logic deoarece vrem ca la o tensiune de 5V acesta sa fie complet deschis. Tranzistorul utilizat este IRLZ44N.  

Pentru inceput vom aprinde si stinge un led folosind tranzistorul pe post de comutator. Acesta se conecteaza la pinul digital 3 printr-un rezistor de 150 ohmi. De asemenea intre pinul digital 3 si masa vom folosi un alt rezistor de 10 KiloOhmi (Pull-Down). 

In drena tranzistorului vom conecta un led impreuna cu rezistorul aferent acestiuia iar sursa va fi conectata la masa.

Schema este cea de mai jos:

In acest articol vom incerca folosirea placii de dezvoltare STM32. Procesoarele folosite in aceste placi sunt ARM Cortex M3. Placa folosita este STM32F103C8.

Placa pereaza la o frecventa de 72MHz, se alimenteaza cu o tensiune intre +2V si +3,6V. Mai multi parametri ai acestei placi se pot citi aici.

Placa de dezvoltare este cea din poza de mai jos:

Intr-un articol mai vechi am folosi un servomotor impreuna cu Arduino. Acum vom incerca sa folosim 2 servomotoare.

Conectarea celor 2 motoare este simpla, alimentarea se face cu +5V iar comanda fiecarui motor o vom da de pe iesirile digitale 2 si 3 ale Arduino.

Servomotoarele folosite sunt SG90. Cele 3 terminale ale fiecarui servomotor se vor conecta in acest mod:

Servo        ---     Arduino

Rosu          -      +5V

Maro          -      GND

Galben       -      D2 sau D3

Sketchul folosit este urmatorul:

Pentru a pune o pauza in rularea codului executat de catre Arduino pana acum foloseam functia delay(). Dar aceasta functie nu este recomandata a fi folosita decat in cazurile in care testam codul. In locul acestei functii vom folosi functia millis() sau chiar micros().

De ce nu trebuie sa folosim functia delay()? Deoarece aceasta functie "spune" procesorului sa faca o pauza de x milisecunde (cate declaram ca parametru) iar acest lucru nu este de dorit. Nu am vrea ca procesorul sa faca o pauza ci ca el sa ruleze continuu.

Pentru acest lucru vom folosi functia millis(). Codul sursa este usor de folosit si voi exemplifica mai jos cum se face.

Raspberry Pi

Raspberry Pi Pico si displayul OLED 128*64

Pornind de la precedentul articol vom incerca si folosirea unui display 128*64 pixeli dar cu conectare pe interfata SPI. Displayul se conecteaza pe interfata SPI0 si se alimenteaza cu o tensiune de +3...

Raspberry Pi Pico si displayul OLED 128*32

Avand la dispozitie un display OLED 128*32 pixeli cu driverul SSD1306 vom incerca folosirea acestuia impreuna cu Raspberry Pi Pico. Displayul folosit de mine fiind pe interfata I2C va simplifica foar...

Afisare iconite pe display LCD I2C

In continuarea articolului anterior putem aduce modificari la afisare prin adaugarea de diferite iconite pe langa alte informatii. Pentru a face acest lucru vom folosi exemplu din codul de mai jos:

In acest articol vom vedea cum se poate folosi un afisaj LCD uzual si foarte raspandit de genul 16x02, 16x04 sau 20x04. Aceste tipuri de afisaje se pot folosi impreuna cu un adaptor I2C pentru a simpl...

Pentru a realiza un ceas cu Raspberry Pi Pico putem folosi doar cateva linii de cod pentru acest lucru. In acest exemplu data si timpul o vom afisa in terminalul serial. Codul sursa este foare simpl...

DHT11 si Raspberry Pi Pico

Daca in articolul anterior am vazut cum putem citi temperatura si umiditatea mediului ambiant cu ajutorul senzorului DHT22 in acest articol vom vedea cum putem inlocui senzorul DHT22 cu senzorul DHT11...

More Articles

Mai multe de la: Raspberry Pi

Autentificare