[/quote][quote]
UPDATE TERBARU !!
TACHOMETER versi LCD
yang berminat untuk "belajar ngerakit + programming" ...silahkan via PM
khusus buat yg pengen belajar ya...kalo tujuannya laen...banyak yg jual tacho kok di FJB
Dear ceriwisser
Perkenalkan diriku pengasuh thread di forum hobby, hobby yg aku asuh yaitu elektronika, linknya
dimari
Sekitar pertengahan tahun 2010 dapet tantangan bikin tachometer digital dari seorang ceriwisser dan akhirnya berhasil aku bikin prototypenya
Input tacho dari radiasi kabel busi , dililitkan kabel(coil) ke kabel menuju busi sehingga bisa nangkep pulsa dari busi
alat ini berbasis microcontroller AVR ATTINY 2313
bahan2nya cukup gampang dan mudah didapat, cuman agan kudu ngerti microcontoller untuk membuatnya (kalo mau desain dari awal..kalo nyolder aja seh gampang)
Bahan2 mudah didapat dan murah ga sampe 50ribu
- AVR attiny 2313
- 7 Segment 4 buah
- regulator 7805
- cap 1000uF , 100nF
- transistor 2n3906
Tentunya Agan Butuh programmer AVR ...bisa beli (200 rb an) atau bikin ndiri ( diforum hobby ada kok)
software programmernya pake yg gratisan aja (AVR STUDIO + WINAVR)
Hasil jadi di test ke Motor
Maaf photonya siang pake HP pulak, jadi agak ga jelas...tp aslinya mantap
yang mesen ke aku juga ada ...tapi bencana datang...kerjaan dikantor numpuk, daku pergi keluar kota ...
terbengkalai akhirnya terlupakan, dan sebagai pertanggungan jawab daku sebarin aja source code + rangkaiannya...
dan terusnya kepikir untuk nyebarin di FR2 juga....dan berikut rangkaiannya :
[/spoiler][spoiler=open this] for
rangkaian + source code:
Code:
#define F_CPU 1000000UL
#include
#include
#include
#include
#include
#include
#include
uint8_t angka1=10 ;
uint8_t angka2=10 ;
uint8_t angka3=10 ;
uint8_t angka4=10 ;
uint8_t segstep=0;
uint8_t kalibrasi=3;
int number=0;
void conv_segmen(uint8_t digit)
{
switch (digit)
{
case 0 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5);
PORTB |= _BV(PB6) ;
break;
}
case 1 :
{
PORTB &= ~_BV(PB1) & ~_BV(PB2) ;
PORTB |= _BV(PB0) | _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) ;
break;
}
case 2 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB6) ;
PORTB |= _BV(PB2) | _BV(PB5) ;
break;
}
case 3 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB6) ;
PORTB |= _BV(PB4) | _BV(PB5) ;
break;
}
case 4 :
{
PORTB &= ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB5) & ~_BV(PB6) ;
PORTB |= _BV(PB0) | _BV(PB3) | _BV(PB4) ;
break;
}
case 5 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB5) & ~_BV(PB6) ;
PORTB |= _BV(PB1) | _BV(PB4) ;
break;
}
case 6 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5) & ~_BV(PB6) ;
PORTB |= _BV(PB1) ;
break;
}
case 7 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) ;
PORTB |= _BV(PB3) | _BV(PB4) | _BV(PB5)| _BV(PB6) ;
break;
}
case 8 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5) & ~_BV(PB6);
break;
}
case 9 :
{
PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB5) & ~_BV(PB6);
PORTB |= _BV(PB4) ;
break;
}
case 10 :
{
PORTB |= _BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) ;
break;
}
}
}
void init_ctr(void)
{
TCCR0A |= (1