This shows you the differences between two versions of the page.
pm:lab:lab4-2022 [2023/04/02 20:43] 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 171: | Line 171: | ||
===== 4. Exercitii ===== | ===== 4. Exercitii ===== | ||
**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. | + | - 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 citita pentru senzorul de temperatura trebuie sa fie exprimata in grade Celsius. Tensiunea de iesire a senzorului variaza liniar cu temperatura. Puteti sa faceti conversia experimental sau folosindu-va 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]] | ||