Перейти к содержанию

abuzhakov

Рекомендуемые сообщения

Привет всем! на этот раз я решил собрать VU METR на atmega8

В инете я нашел схему вот эту http://hawelson.blog.cz/1005/vu-metr-2x32led-s-mikrokontrolerem и решил её собрать!

У меня сейчас в машине стоит анализатор спектра на atmega8 я его переделал под VU METR но светодиодов мало всего 10 поэтому мне пришла в голову такая идея.

Кто нибудь собирал такую? и работает ли она вообще?

Вот схема:

post-143652-0-92320300-1350891692_thumb.png

Печатная плата:

post-143652-0-33512300-1350891756_thumb.png

В собранном виде:

post-143652-0-48365500-1350891844_thumb.jpg

post-143652-0-36886900-1350891888_thumb.jpg

Я переделал печатку под себя чтоб я мог соединить светодиоды там где захочу

post-143652-0-30734300-1350892242_thumb.png

И код программы:

/*
MCU: ATmega8, ATmega8L
Program pro stereo VU metr 2x32 LED
Program napsal Petr Hawliczek
Vytvořeno pro web: http://HAWELSON.blog.cz/
*/
//********************************************
#define F_CPU 1000000UL // NASTAVENÍ VNITŘNÍHO OSCILÁTORU NA 1MHz (defaultní)
#include <avr/io.h>
#include <util/delay.h>
//********************************************
void cekani(); // podprogram rychle nastavitelneho cekani (delka bliknuti LED)
unsigned char a; // proměnná do které se bude ukládat hodnota z A/D převodníku
// je typu char, tedy 256 hodnot
char b=0; // konstanta posunu pro potlační šumu
// (posun od nuly, aby neblikaly LED bez sign.)
//********************************************
void main()
{
DDRB = 0xFF; // inicializace portů
DDRC = 0b11111100;
DDRD = 0xFF;
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;

//********************************************
while (1) { // nekonečná smyška vykreslování

// Levý kanál
// Nastavení A/D převodníku -->
ADMUX = 0x00; // ozkačení z kterého kanálu chceme brát (kanál 0)
ADMUX = ADMUX | 0b11000000; // aktivace REFS0 a 1
//(Internal 2,56V reference with external capacitor at AREF pin)
ADMUX = ADMUX | 0x20; // aktovace ADLAR: ADC Left Adjust Result
ADCSRA = 0x00; // volba nejrychlejšího A/D převodu krystal/2
ADCSRA = ADCSRA | 0x80; // zapnutí A/D převodníku

//Přečtení hodnoty z A/D převodníku -->
ADCSRA = ADCSRA | 0x40; // start převodu
while( (ADCSRA & 0x10) == 0); // počká až je připravená hodnota z A/D (pak se tato hodnota dostane do 0)
a = ADCH; // převede se hodnota z A/D do proměnné a
ADCSRA = ADCSRA | 0x10; // vymaže, že je hodnota připravená - pro další nové měření

//---------------------------------------------
// podrprogram pro rozsvěcení led umístěn zde -->

if (a <= b+0 ) { // 0 LED
// spodní část LED
PORTB=0b00010000; // všechny LED zhasnuty
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00100000;
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+1 ) { // 1 LED
// spodní část LED
PORTB=0b00010010; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00100000;
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+2) { // 2 LED
// spodní část LED
// spodní část LED
PORTB=0b00010010; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00100010; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}

else if (a <= b+3) { // 3 LED
// spodní část LED
PORTB=0b00010011; // celková třetí LED rozsvícena
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00100010; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+4) { // 4 LED
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+5) { //
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b10000000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+6) { //
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b10000000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b10000000;
cekani();
}
else if (a <= b+7) { //
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11000000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b10000000;
cekani();
}
else if (a <= b+8) { //
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11000000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11000000;
cekani();
}
else if (a <= b+9) { //
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11000000;
cekani();
}
else if (a <= b+10) { // 10 LED
// spodní část LED
PORTB=0b00010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+12) { //
// spodní část LED
PORTB=0b10010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}

else if (a <= b+14) { //
// spodní část LED
PORTB=0b10010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b10100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+16) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b10100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+18) { //
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+20) { // 15 LED
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11110000;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+23) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11110000;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11110000;
cekani();
}
else if (a <= b+26) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111000;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11110000;
cekani();
}
else if (a <= b+29) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111000;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111000;
cekani();
}
else if (a <= b+32) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111100;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111000;
cekani();
}
else if (a <= b+36) { // 20 LED
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111100;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111100;
cekani();
}
else if (a <= b+40) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111110;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111100;
cekani();
}
else if (a <= b+44) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111110;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111110;
cekani();
}
else if (a <= b+48) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111110;
cekani();
}
else if (a <= b+52) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+57) { // 25 LED
// spodní část LED
PORTB=0b11010011;
PORTC=0b00100000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+62) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00100000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00100000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+67) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00110000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00100000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+73) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00110000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00110000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+79) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00111000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00110000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+86) { // 30 LED
// spodní část LED
PORTB=0b11010011;
PORTC=0b00111000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00111000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+93) { //
// spodní část LED
PORTB=0b11010011;
PORTC=0b00111100; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00111000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else { // 32 LED (2x 16 LED)
// spodní část LED
PORTB=0b11010011;
PORTC=0b00111100; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11100011; //
PORTC=0b00111100; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
// Na konci nastavení nul, aby LED nesvítily v čase měření A/D převodníkem
PORTB=0x00; //
PORTC=0x00; // spodní část LED aktivní
PORTD=0x00;


// ---------------------------------------------------------------
// ---------------------------------------------------------------
// ****************************************************
// Pravý kanál -->
// Nastavení A/D převodníku -->
ADMUX = 0x01; // ozkačení z kterého kanálu chceme brát (kanál 1)
ADMUX = ADMUX | 0b11000000; // aktivace REFS0 a 1
//(Internal 2,56V reference with external capacitor at AREF pin)
ADMUX = ADMUX | 0x20; // aktovace ADLAR: ADC Left Adjust Result
ADCSRA = 0x00; // volba nejrychlejšího A/D převodu krystal/2
ADCSRA = ADCSRA | 0x80; // zapmutí A/D ppřevodníku

//Přečtení hodnoty z A/D převodníku -->
ADCSRA = ADCSRA | 0x40; // start převodu
while( (ADCSRA & 0x10) == 0); // počká až je připravená hodnota z A/D (pak se tato hodnota dostane do 0)
a = ADCH; // převede se hodnota z A/D do proměnné a
ADCSRA = ADCSRA | 0x10; // vymaže, že je hodnota připravená - pro další nové měření

//--------------------------------------------------------------
// podrprogram pro rozsvěcení led umístěn zde -->

if (a <= b+0) { // 0 LED
// spodní část LED
PORTB=0b00000100; // všechny LED zhasnuty
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00001000;
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+1) { // 1 LED
// spodní část LED
PORTB=0b00000110; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00001000;
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+2) { // 2 LED
// spodní část LED
// spodní část LED
PORTB=0b00000110; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00001010; // první LED rozsvícena ve spodní části
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}

else if (a <= b+3) { // 3 LED
// spodní část LED
PORTB=0b00000111; // celková třetí LED rozsvícena
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00001010; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+4) { // 4 LED
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b00000000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+5) { //
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b10000000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b00000000;
cekani();
}
else if (a <= b+6) { //
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b10000000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b10000000;
cekani();
}
else if (a <= b+7) { //
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11000000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b10000000;
cekani();
}
else if (a <= b+8) { //
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11000000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11000000;
cekani();
}
else if (a <= b+9) { //
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11000000;
cekani();
}
else if (a <= b+10) { // 10 LED
// spodní část LED
PORTB=0b00000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+12) { //
// spodní část LED
PORTB=0b10000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b00001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+14) { //
// spodní část LED
PORTB=0b10000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b10001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+16) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b10001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+18) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11100000;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+20) { // 15 LED
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11110000;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11100000;
cekani();
}
else if (a <= b+23) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11110000;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11110000;
cekani();
}
else if (a <= b+26) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111000;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11110000;
cekani();
}
else if (a <= b+29) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111000;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111000;
cekani();
}
else if (a <= b+32) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111100;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111000;
cekani();
}
else if (a <= b+36) { // 20 LED
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111100;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111100;
cekani();
}
else if (a <= b+40) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111110;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111100;
cekani();
}
else if (a <= b+44) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111110;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111110;
cekani();
}
else if (a <= b+48) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111110;
cekani();
}
else if (a <= b+52) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00000000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+57) { // 25 LED
// spodní část LED
PORTB=0b11000111;
PORTC=0b00100000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00000000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+62) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00100000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00100000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+67) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00110000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00100000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+73) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00110000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00110000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+79) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00111000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00110000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+86) { // 30 LED
// spodní část LED
PORTB=0b11000111;
PORTC=0b00111000; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00111000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else if (a <= b+93) { //
// spodní část LED
PORTB=0b11000111;
PORTC=0b00111100; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00111000; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
else { // 32 LED (2x 16 LED)
// spodní část LED
PORTB=0b11000111;
PORTC=0b00111100; // spodní část LED aktivní
PORTD=0b11111111;
cekani();
// horní část LED
PORTB=0b11001011; //
PORTC=0b00111100; // horní část LED aktivní
PORTD=0b11111111;
cekani();
}
// Na konci nastavení nul, aby LED nesvítily v čase měření A/D převodníkem
PORTB=0x00; //
PORTC=0x00; // spodní část LED aktivní
PORTD=0x00;
}
}

// vypsaný podprogram cekani (dela bliknutí)
void cekani() {
_delay_us(2000); // délka čekání v mikrosekundách
}

Соединять я буду к ней выходной сигнал на усилитель магнитолы подскажите нужны ли стабилитроны? или можно их не ставить? (у меня их просто нет)

Ссылка на комментарий
Поделиться на другие сайты

Если с магнитолы выходной сигнал, то лучше поставить. Может там на выходе под 50 вольт напряжение шарашит ....

И не стабилитроны, а диодный ограничитель напряжения.

http://cxem.net/begi...beginner108.php, рис. 12.

Изменено пользователем hd44780
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...