Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 1469
Har satt sammen en forsøks plate med atmega8 og 10 stk RGB LED.
Tanken er å bruke den til å vise tresifred tallverdi ( simulere analog )
Videoen her kan kalles en kuleramme, der de blå angir enere, rød tiere, grønn hudre.
http://www.youtube.com/watch?v=Sf8OTzWyBzs

Komponentene er loddet på ett ferdig borret print, der det er baner som går over tre hull i slengnen. Resten av forbidelsene tar små ledningsender seg av.
Koden er av den svært enkle sorten

Kode

#define F_CPU 16000000	//Klokkefrekvens
#include <avr/io.h>
#include <util/delay.h>	//Header for _delay_ms()
#include <math.h>
int tell = 0;
int tell1 = 0;
int tell2 = 0;
int tell3 = 0;
int tell4 = 0;
int lpd[]={1,2,4,8,16,32,64,128,0,0};
int lpb[]={0,0,0,0,0,0,0,0,1,2};
int farge = 0;
int fp[]={24,40,48};

int main(){
	DDRD = 0xFF;
	DDRC = 0xFF;		//Sett alle pinner på PORT* til utganger
	DDRB = 0xFF;
	PORTD = 0xFF;
	PORTC = 0xFF;
	PORTB = 0xFF;


     	while(1){

		tell1 = 0;
     		while(tell1<10){
	    	tell2 = 0;
     		while(tell2<10){
			tell3=0;
     		while(tell3<10){	 		 

			tell4=0;
     		while(tell4<50){	 		 

	  			PORTD = lpd[(tell1)];
	  			PORTC = 40;
	  			PORTB = lpb[(tell1)];
				_delay_us(30);
                PORTD = lpd[(tell2)];
	  			PORTC = 24;
	  			PORTB = lpb[(tell2)];
				_delay_us(4);

                PORTD = lpd[(tell3)];
	  			PORTC = 48;
	  			PORTB = lpb[(tell3)];
				_delay_us(1);

                tell4++;
				}
                tell3++;
				}
				tell2++;

				
				}
				tell1++;
				}
		}
}
Hver LEDene har felles anode, disse går til hver sin utgang på kretsen ( LED1 til LED 8 går til PORT D0 ti PORT D7, LED 9 og 10 til B0 og B1).
Alle andre ben på ledene er samlet til en felles for hver farge.
Lysstyrken på hver av fargene kan endres fra programmet. ¨
Sitat av asmika Vis innlegg
...
Lysstyrken på hver av fargene kan endres fra programmet. ¨
Vis hele sitatet...
Hvordan foregår dette i programmet ditt?
Trådstarter
Sitat av capidog Vis innlegg
Hvordan foregår dette i programmet ditt?
Vis hele sitatet...

Kode

	  			PORTD = lpd[(tell1)];
	  			PORTC = 40;
	  			PORTB = lpb[(tell1)];
				_delay_us(30);         // Tid grønn på
                PORTD = lpd[(tell2)];
	  			PORTC = 24;
	  			PORTB = lpb[(tell2)];
				_delay_us(4);         // Tid rød på

                PORTD = lpd[(tell3)];
	  			PORTC = 48;
	  			PORTB = lpb[(tell3)];
				_delay_us(1);         // Tid blå på
Sitat av asmika Vis innlegg

Kode

	  		
				_delay_us(30);         // Tid grønn på
Vis hele sitatet...
Hjemmelaget PWM, altså.
Trådstarter
Sitat av capidog Vis innlegg
Hjemmelaget PWM, altså.
Vis hele sitatet...
Japp, enkleste sort