Operácie

Elektronická škrtiaca klapka: Rozdiel medzi revíziami

Z SensorWiki

(Vytvorená stránka „Záverečný projekt predmetu MIPS / LS2024 - '''Meno Priezvisko''' == Zadanie == Sem príde text zadania, ak bolo len voľne formulované, rozpíšte ho podrobnejši…“)
 
(6 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
Záverečný projekt predmetu MIPS / LS2024 - '''Meno Priezvisko'''
+
Záverečný projekt predmetu MIPS / LS2024 - '''Peter Szovics'''
  
  
 
== Zadanie ==
 
== Zadanie ==
  
Sem príde text zadania, ak bolo len voľne formulované, rozpíšte ho podrobnejšie
+
Zostrojte a naprogramujte ovladanie škrtiacej klapky pomocou plynového pedálu.
  
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
+
 
 +
 
 +
 
 +
[[Obrázok: UNO_schema_na_zaciatok_stranky.jpg|700px|thumb|center|Vývojová doska Arduino UNO R3]]
  
 
'''Literatúra:'''  
 
'''Literatúra:'''  
Riadok 34: Riadok 37:
 
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
 
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
 
#include <avr/io.h>
 
#include <avr/io.h>
 
+
#include "uart.h"
 +
#define F_CPU 16000000UL
 +
#define BAUDRATE      9600
 +
#include <stdio.h>
 +
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);
 +
                             
 
int main(void)
 
int main(void)
 
{
 
{
 +
  adc_init();
 +
  hw_init();
 +
  uart_init();
 +
  stdout = &mystdout;          // printf() works from now
 
   unsigned int measuredValue;
 
   unsigned int measuredValue;
  
   while (1)
+
  DDRD|=(1<<PD6);        // Init PD5 and PD6 pins as output
 +
 
 +
 
 +
  //Initialize Timer0
 +
 
 +
  TCNT0=0;                        // Set Initial Timer value
 +
 
 +
  OCR0A=0;                      // Set Initial Pulse width
 +
 
 +
 
 +
                                //Set fast PWM mode + clear OC0A and set OC0B on compare match
 +
 
 +
  TCCR0A|=(1<<COM0A1)|(1<<COM0B1)|(1<<WGM01)|(1<<WGM00);
 +
 
 +
  TCCR0B|=(1<<CS02)|(1<<CS00);      // Set prescaller 1024 and start timer
 +
 
 +
   while(1)
 
   {
 
   {
    /*  relax  */ 
+
measuredValue = adc_read(4);
 +
printf("hodnota: %04d \r",measuredValue);
 +
 +
OCR0A=measuredValue/4;
 
   }
 
   }
 
+
 
 
   return(0);
 
   return(0);
 
}
 
}
 +
  
 
</source></tab>
 
</source></tab>
Riadok 60: Riadok 92:
  
 
Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
 
Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
 
  
 
=== Overenie ===
 
=== Overenie ===
Riadok 67: Riadok 98:
 
Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.  
 
Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.  
  
[[Súbor:fotka.jpg|400px|thumb|center|Aplikácia.]]
+
[[Súbor:sklapka.jpg|400px|thumb|center|Aplikácia.]]
  
 
'''Video:'''
 
'''Video:'''
<center><youtube>_l02MBu41n0</youtube></center>
+
<center><youtube>_bB7sJQAfE8</youtube></center>
  
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.  
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.  
  
 
[[Category:AVR]] [[Category:MIPS]]
 
[[Category:AVR]] [[Category:MIPS]]

Verzia zo dňa a času 12:58, 15. máj 2024

Záverečný projekt predmetu MIPS / LS2024 - Peter Szovics


Zadanie

Zostrojte a naprogramujte ovladanie škrtiacej klapky pomocou plynového pedálu.



Vývojová doska Arduino UNO R3

Literatúra:


Analýza a opis riešenia

Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...

RGB LED.

Nezabudnite doplniť schému zapojenia!

Schéma zapojenia LCD displeja.


Algoritmus a program

Algoritmus programu je....


#include <avr/io.h>
#include "uart.h"
#define F_CPU 16000000UL
#define BAUDRATE       9600
#include <stdio.h>
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);
                              
int main(void)
{
  adc_init();
  hw_init();
  uart_init();
  stdout = &mystdout;           // printf() works from now
  unsigned int measuredValue;

  DDRD|=(1<<PD6);        // Init PD5 and PD6 pins as output


  //Initialize Timer0

  TCNT0=0;                        // Set Initial Timer value

  OCR0A=0;                       // Set Initial Pulse width
  

                                 //Set fast PWM mode + clear OC0A and set OC0B on compare match

  TCCR0A|=(1<<COM0A1)|(1<<COM0B1)|(1<<WGM01)|(1<<WGM00);

  TCCR0B|=(1<<CS02)|(1<<CS00);      // Set prescaller 1024 and start timer
  
  while(1)
  {
	measuredValue = adc_read(4);
	printf("hodnota: %04d \r",measuredValue);
	
	OCR0A=measuredValue/4;
  }
  
  return(0);
}
#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

unsigned int adc_read(char a_pin);

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip

Overenie

Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.

Aplikácia.

Video:

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.