This shows you the differences between two versions of the page.
pm:lab:lab3-2022 [2022/03/29 12:36] dragos_mihai.ene [4. Exerciții] |
pm:lab:lab3-2022 [2023/03/19 14:41] (current) alexandru.predescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laboratorul 3: Întreruperi externe. PWM ====== | + | /** |
+ | * uncomment this to publish the solution: | ||
+ | * ~~SHOWSOLUTION~~ | ||
+ | */ | ||
+ | ~~SHOWSOLUTION~~ | ||
+ | |||
+ | ====== Laboratorul 3: Întreruperi externe. PWM (old) ====== | ||
Acest laborator are ca scop familiarizarea voastră cu lucrul cu întreruperile externe și cu modul de generare a semnalelor PWM folosind timer-ele prezente în microcontroller-ul Atmega328p. Vom folosi întreruperi externe pentru a detecta apăsarea unui buton, independent de programul principal. Folosind semnale PWM vom controla un LED RGB și poziția unui servomotor. | Acest laborator are ca scop familiarizarea voastră cu lucrul cu întreruperile externe și cu modul de generare a semnalelor PWM folosind timer-ele prezente în microcontroller-ul Atmega328p. Vom folosi întreruperi externe pentru a detecta apăsarea unui buton, independent de programul principal. Folosind semnale PWM vom controla un LED RGB și poziția unui servomotor. | ||
Line 271: | Line 277: | ||
} | } | ||
</file> | </file> | ||
- | |||
Line 285: | Line 290: | ||
{{:pm:lab:lab3_task0.png?direct&600|}} | {{:pm:lab:lab3_task0.png?direct&600|}} | ||
- | |||
- | <hidden> | ||
- | **Soluția** se găsește pe [[https://github.com/cs-pub-ro/laborator-pm/tree/master/laborator/lab3/task0|Github PM Task 0]] | ||
- | </hidden> | ||
=== Task 1 (LED RGB) === | === Task 1 (LED RGB) === | ||
Line 305: | Line 306: | ||
* Pentru a urmări corespondența dintre cele 2 reprezentări (RGB și HSV) există selectoare de culori precum [[https://colorpicker.me/#3237b9|Online Color Picker]] | * Pentru a urmări corespondența dintre cele 2 reprezentări (RGB și HSV) există selectoare de culori precum [[https://colorpicker.me/#3237b9|Online Color Picker]] | ||
{{ :pm:lab:hue-wheel.png?direct&400 |}} | {{ :pm:lab:hue-wheel.png?direct&400 |}} | ||
- | |||
- | <hidden> | ||
- | **Soluția** se găsește pe [[https://github.com/cs-pub-ro/laborator-pm/tree/master/laborator/lab3/task1|Github PM Task 1]] | ||
- | </hidden> | ||
=== Task 2 (Servo / sweep) === | === Task 2 (Servo / sweep) === | ||
Line 349: | Line 346: | ||
} | } | ||
</file> | </file> | ||
- | |||
- | <hidden> | ||
- | **Soluția** se găsește pe [[https://github.com/cs-pub-ro/laborator-pm/tree/master/laborator/lab3/task2|Github PM Task 2]] | ||
- | </hidden> | ||
=== Task 3 (Servo / buton) === | === Task 3 (Servo / buton) === | ||
Line 363: | Line 356: | ||
* Folosiți debouncing pentru a obține o funcționare corectă (o apăsare va incrementa o singură dată poziția) | * Folosiți debouncing pentru a obține o funcționare corectă (o apăsare va incrementa o singură dată poziția) | ||
* Există și servomotoare care folosesc un alt interval de comenzi (ex. 0.7ms-2.3ms), se poate folosi funcția //writeMicroseconds// pentru a controla direct durata pulsului. [[https://www.arduino.cc/en/Reference/ServoWriteMicroseconds|Servo.writeMicroseconds]] | * Există și servomotoare care folosesc un alt interval de comenzi (ex. 0.7ms-2.3ms), se poate folosi funcția //writeMicroseconds// pentru a controla direct durata pulsului. [[https://www.arduino.cc/en/Reference/ServoWriteMicroseconds|Servo.writeMicroseconds]] | ||
- | |||
- | <hidden> | ||
- | **Soluția** se găsește pe [[https://github.com/cs-pub-ro/laborator-pm/tree/master/laborator/lab3/task3|Github PM Task 3]] | ||
- | </hidden> | ||
- | |||
===== 5. Resurse ===== | ===== 5. Resurse ===== | ||
Line 375: | Line 363: | ||
{{:pm:lab:uno.jpg?direct&200|pinout Arduino UNO}} | {{:pm:lab:uno.jpg?direct&200|pinout Arduino UNO}} | ||
* Responsabili: [[dragos_mihai.ene@stud.acs.upb.ro | Dragoș Ene ]] | [[sebastian.gherman99@stud.acs.upb.ro | Sebastian Gherman ]] | * Responsabili: [[dragos_mihai.ene@stud.acs.upb.ro | Dragoș Ene ]] | [[sebastian.gherman99@stud.acs.upb.ro | Sebastian Gherman ]] | ||
+ | |||
+ | <solution> | ||
+ | <hidden>Arhiva cu soluțiile o puteți descărca de aici: {{:pm:lab:lab3_2021:lab3-solved.zip}}</hidden> | ||
+ | </solution> | ||
+ | |||
===== 6. Linkuri utile ===== | ===== 6. Linkuri utile ===== | ||
Line 383: | Line 376: | ||
* [[https://en.wikipedia.org/wiki/Comma-separated_values|CSV]] | * [[https://en.wikipedia.org/wiki/Comma-separated_values|CSV]] | ||
* [[https://www.arduino.cc/en/Reference/ServoWriteMicroseconds|Servo.writeMicroseconds]] | * [[https://www.arduino.cc/en/Reference/ServoWriteMicroseconds|Servo.writeMicroseconds]] | ||
+ |