Operácie

Elektronická škrtiaca klapka

Zo stránky SensorWiki

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

Témou mojej semestrálnej práce som si vybral ovládanie škrtiacej klapky pomocou plynového pedálu. Zapojenie a vypracovanie projektu je inšpirované cvičením 8 (http://senzor.robotika.sk/sensorwiki/index.php/A/D_prevodn%C3%ADk).


Súčiastky a diely ktoré boli použité na zostrojenie projektu:

• elektronický plynový pedál (1K2 721 503 AJ)
• elektronická škrtiaca klapka (047 133 062)
• sacie potrubie (047 129 743 G)
• arduino r3 doska (Microchip ATmega328P)
• adaptér 230V/9V (ASSA107E-090100)
• napatovy stabilizator (7805)
• mosfet transistor (IRF540N)
• rezistory 1kΩ, 220Ω
• breadboard (MB-102 830/400)
• duPont káble M-M - 40x, 40 cm
Presný opis fungovania elektrického obvodu:
Adaptér zapojený do siete konvertuje 230V AC na 9V DC, V akej pozícií je pedál toľko energie sa vysiela na pohon škrtiacej klapky, preto sa klapka začne hýbať až po prekročení 40% zatlačenia pedálu, aby sme predišli tomuto neefektívnemu ovládaniu a chceliť docieliť identický pohyb klapky a pedálu tak som pre budúce vylepšovanie do projektu zakomponoval aj predprípravu (arduino výstup A3, A1 a A2) na spatnovazobný regulátor aby Škrtiaca klapka presne kopírovala polohu pedálu.

ELEKTRONICKÁ SCHÉMA

Nezabudnite doplniť schému zapojenia!

ZÁZNAM Z OSCILOSKOPU


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.