This shows you the differences between two versions of the page.
pm:prj2025:iotelea:bogdan.fratiman [2025/05/25 21:27] bogdan.fratiman [Software Design] |
pm:prj2025:iotelea:bogdan.fratiman [2025/05/26 12:08] (current) bogdan.fratiman |
||
---|---|---|---|
Line 60: | Line 60: | ||
**Surse şi funcţii implementate:** | **Surse şi funcţii implementate:** | ||
* ''setup()'' - Inițializează toate perifericele și configurează Timer1 în mod Fast PWM (WGM13:0 = 14) cu TOP = ICR1 = 40000, pentru a genera un semnal PWM de 50 Hz pe pinul OC1A (pin 9), cu un prescaler de 8, potrivit pentru servomotorul SG90: | * ''setup()'' - Inițializează toate perifericele și configurează Timer1 în mod Fast PWM (WGM13:0 = 14) cu TOP = ICR1 = 40000, pentru a genera un semnal PWM de 50 Hz pe pinul OC1A (pin 9), cu un prescaler de 8, potrivit pentru servomotorul SG90: | ||
- | <code java> | + | <code java> |
TCCR1A = (1 << WGM11); | TCCR1A = (1 << WGM11); | ||
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS11); | TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS11); | ||
Line 75: | Line 75: | ||
<code java> | <code java> | ||
attachInterrupt(digitalPinToInterrupt(buttonPin), handleButtonPress, RISING); | attachInterrupt(digitalPinToInterrupt(buttonPin), handleButtonPress, RISING); | ||
- | </code> | + | </code> |
* ''loop()'' - Bucla principală a programului. Se ocupă de: | * ''loop()'' - Bucla principală a programului. Se ocupă de: | ||
* măsurarea distanței cu senzorul HC-SR04 | * măsurarea distanței cu senzorul HC-SR04 | ||
<code java> | <code java> | ||
- | digitalWrite(trigPin, LOW); | + | digitalWrite(trigPin, LOW); |
- | delayMicroseconds(2); | + | delayMicroseconds(2); |
- | digitalWrite(trigPin, HIGH); | + | digitalWrite(trigPin, HIGH); |
- | delayMicroseconds(10); | + | delayMicroseconds(10); |
- | digitalWrite(trigPin, LOW); | + | digitalWrite(trigPin, LOW); |
- | long duration = pulseIn(echoPin, HIGH); | + | long duration = pulseIn(echoPin, HIGH); |
- | float distance = duration * 0.034 / 2; | + | float distance = duration * 0.034 / 2; |
</code> | </code> | ||
- | * actualizarea ecranului LCD | + | * actualizarea ecranului LCD |
- | * verificarea stării butonului | + | * verificarea stării butonului |
- | * acționarea barierei prin apeluri la setServoAngle(...) | + | * acționarea barierei prin apeluri la ''setServoAngle(...)'' |
</note> | </note> | ||
Line 98: | Line 98: | ||
Link Youtube: | Link Youtube: | ||
+ | https://youtube.com/shorts/j4JR8kcPbFc?feature=share | ||
</note> | </note> |