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]] | ||
| + | |||