This shows you the differences between two versions of the page.
|
pm:lab:lab4-2022 [2023/04/02 20:45] dumitru.tranca [4. Exercitii] |
pm:lab:lab4-2022 [2023/04/04 08:02] (current) florin.stancu [5. Resurse] |
||
|---|---|---|---|
| Line 151: | Line 151: | ||
| /* wait until conversion is complete */ | /* wait until conversion is complete */ | ||
| while (!(ADCSRA & (1 << ADIF))); | while (!(ADCSRA & (1 << ADIF))); | ||
| - | uint32_t result = ADC; | + | uint16_t result = ADC; |
| </code> | </code> | ||
| Line 172: | Line 172: | ||
| **Task 0** Folositi cod Arduino pentru a citi valoarea unui potentiometru si a unui senzor de temperatura si apoi trimiteti valorile pe seriala. | **Task 0** Folositi cod Arduino pentru a citi valoarea unui potentiometru si a unui senzor de temperatura si apoi trimiteti valorile pe seriala. | ||
| - Transmiteți către consolă, folosind seriala disponibilă, tensiunea (calculată pe microcontroller) de la ieșirea potențiometrului și valoarea returnată de ADC (0-1023). | - Transmiteți către consolă, folosind seriala disponibilă, tensiunea (calculată pe microcontroller) de la ieșirea potențiometrului și valoarea returnată de ADC (0-1023). | ||
| - | - Valoarea citită pentru senzorul de temperatură trebuie sa fie exprimată in grade Celsius. Tensiunea de iesire a senzorului variaza liniar cu temperatura. Puteti sa faceti conversia experimental sau folosindu-vă de datasheet ([[https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf|Datasheet TMP36]]). | + | - Valoarea citită pentru senzorul de temperatură trebuie sa fie exprimată in grade Celsius. Tensiunea de iesire a senzorului variaza liniar cu temperatura. Puteti sa faceti conversia experimental sau folosindu-vă de datasheet ([[https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf|Datasheet TMP36]] / [[https://www.ti.com/lit/ds/symlink/lm35.pdf|Datasheet LM35]]). |
| {{ pm:lab:PB1.png?500 | PB1 }} | {{ pm:lab:PB1.png?500 | PB1 }} | ||
| + | <solution> | ||
| <hidden> | <hidden> | ||
| + | |||
| **Soluția** se găsește pe [[https://www.tinkercad.com/things/b2Yra0sAu2J-brilliant-lappi-habbi/editel?sharecode=LfeWdU6ojyT1VzyOCdjwU3ieYR6u4bV2-lEko5iVrTc|Tinkercad TMP36]] | **Soluția** se găsește pe [[https://www.tinkercad.com/things/b2Yra0sAu2J-brilliant-lappi-habbi/editel?sharecode=LfeWdU6ojyT1VzyOCdjwU3ieYR6u4bV2-lEko5iVrTc|Tinkercad TMP36]] | ||
| </hidden> | </hidden> | ||
| + | </solution> | ||
| **Task 1** Folosind cod specific AVR, cititi valoarea potentiometrului doar atunci cand se apasa un buton. | **Task 1** Folosind cod specific AVR, cititi valoarea potentiometrului doar atunci cand se apasa un buton. | ||
| {{ pm:lab:PB2.png?500 | PB2 }} | {{ pm:lab:PB2.png?500 | PB2 }} | ||
| + | |||
| + | <solution> | ||
| <hidden> | <hidden> | ||
| **Soluția** se găsește pe [[https://www.tinkercad.com/things/b2Yra0sAu2J-brilliant-lappi-habbi/editel?sharecode=LfeWdU6ojyT1VzyOCdjwU3ieYR6u4bV2-lEko5iVrTc|Tinkercad Interrupt]] | **Soluția** se găsește pe [[https://www.tinkercad.com/things/b2Yra0sAu2J-brilliant-lappi-habbi/editel?sharecode=LfeWdU6ojyT1VzyOCdjwU3ieYR6u4bV2-lEko5iVrTc|Tinkercad Interrupt]] | ||
| Line 211: | Line 216: | ||
| EIMSK |= (1 << INT0); | EIMSK |= (1 << INT0); | ||
| } | } | ||
| - | |||
| void setup() | void setup() | ||
| Line 264: | Line 268: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| </hidden> | </hidden> | ||
| + | </solution> | ||
| **Task 2** Folosind cod specific AVR, cititi valoarea potentiometrului o data la 10ms. Pentru acest exercitiu trebuie sa folositi ADC-ul sa porneasca o conversie automat in functie de un timer. | **Task 2** Folosind cod specific AVR, cititi valoarea potentiometrului o data la 10ms. Pentru acest exercitiu trebuie sa folositi ADC-ul sa porneasca o conversie automat in functie de un timer. | ||
| + | <solution> | ||
| <hidden> | <hidden> | ||
| **Soluția** se găsește pe [[https://www.tinkercad.com/things/grYhoajb3sd-exquisite-hango-waasa/editel?sharecode=gNPGmOuI6oZBx3bp-q-S7NlxWoz_wRwWZm9LJK4DHbI|Tinkercad Potentiometer]] | **Soluția** se găsește pe [[https://www.tinkercad.com/things/grYhoajb3sd-exquisite-hango-waasa/editel?sharecode=gNPGmOuI6oZBx3bp-q-S7NlxWoz_wRwWZm9LJK4DHbI|Tinkercad Potentiometer]] | ||
| Line 274: | Line 281: | ||
| </hidden> | </hidden> | ||
| + | </solution> | ||
| ===== 5. Resurse ===== | ===== 5. Resurse ===== | ||
| Line 280: | Line 288: | ||
| * Arduino UNO pinout | * Arduino UNO pinout | ||
| {{:pm:lab:uno.jpg?200|pinout Arduino UNO}} | {{:pm:lab:uno.jpg?200|pinout Arduino UNO}} | ||
| - | * Responsabili: [[razvan.stanescu1903@stud.acs.upb.ro | Razvan Stanescu ]] | + | * Responsabili: [[florin.stancu@upb.ro | Florin Stancu ]] |
| <solution> | <solution> | ||
| Line 289: | Line 297: | ||
| * [[https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/|Arduino Analog Read]] | * [[https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/|Arduino Analog Read]] | ||
| * [[https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf|Datasheet TMP36 ]] | * [[https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf|Datasheet TMP36 ]] | ||
| + | * [[https://www.ti.com/lit/ds/symlink/lm35.pdf|Datasheet LM35]] | ||
| * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328p]] | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328p]] | ||
| * [[https://www.tinkercad.com/things/cl7vDLkEZwF?sharecode=Ve7hoj8NLhZ_JSmV2jcoruc8lzp35D1E-pg1nTFhrgE|Tinkercad TMP36]] | * [[https://www.tinkercad.com/things/cl7vDLkEZwF?sharecode=Ve7hoj8NLhZ_JSmV2jcoruc8lzp35D1E-pg1nTFhrgE|Tinkercad TMP36]] | ||