This is an old revision of the document!


Table of Contents

Hall'i kooder

Teooria

Praktika

//
// Kodulabori Hall'i efektiga koodri demonstratsioon.
// LCD-le kuvatakse mootori reduktori pöörete arv.
//
#include <stdio.h>
#include <avr/interrupt.h>
#include <homelab/module/lcd_alpha.h>
#include <homelab/module/motors.h>
#include <homelab/module/encoders.h>
#include <homelab/delay.h>
 
//
// Mootori parameetrid
//
#define TICKS_PER_TURN 3
#define GEAR_RATIO     47
 
//
// Põhiprogramm
//
int main(void)
{	
	unsigned short rpm;
	char text[16];
 
	// LCD ekraani seadistamine
	lcd_alpha_init(LCD_ALPHA_DISP_ON);
 
	// LCD ekraani puhastamine
	lcd_alpha_clear();
 
	// Programmi nimi
	lcd_alpha_write_string("Enkooder");
 
	// Mootori 0 seadistamine
	dcmotor_init(0);
 
	// Koodri 0 seadistamine
	encoder_init(0);
 
	// Mootori käivitamine
	dcmotor_drive(0, 1);
 
	// Globaalne katkestuste lubane (koodri pärast)
	sei();
 
	// Lõputu tsükkel	
	while (true)
	{
		// Reduktori võlli rpm leidmine		
		rpm = encoder_get_rpm(0) / TICKS_PER_TURN / GEAR_RATIO;
 
		// rpm teisendamine tekstiks
		sprintf(text, "%d rpm   ", rpm);
 
		// Teksti kuvamine LCD teise rea alguses
		lcd_alpha_goto_xy(0, 1);
		lcd_alpha_write_string(text);
 
		// Paus 500 millisekundit
		sw_delay_ms(500);
	}
}
et/examples/encoder/hall_encoder.1263217117.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0