- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: 4-fach 7-Seg. Anzeigemodul aus DVD-Player

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2010
    Beiträge
    22
    Anzeige

    LiFePo4 Akku selber bauen - Video
    So nochmal nachgeschaut es ist definitiv ein 164er da Pin9(IC) Clear mit Vcc verbunden ist,pin8(IC) Clock ist mit 2,2k an pin 10 von Steckerleiste wenn der für clock ist, bleibt nur noch pin9 an Steckerleiste übrig?vergleich negativ Bild weiter oben da sieht man es.

  2. #22
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Also die Eingänge des ICs sind ja Clock, Clear (negiert), Serial in A/B.
    Clock und Clear hast du schon herausgefunden, ich denke dass serial A und B (IC Pin 1,2)
    miteinander verbunden sind und dann auf Pin 9 (Steckerleiste) herausgeführt sind ?
    Dann steht der Ansteuerung ja eigentlich fast nichts mehr im Wege.
    Jetzt gilt es noch die Zuordnung der Segmente der Anzeige zu den QA,QB,QC...QH
    herauszufinden
    Grüße,
    Bernhard

  3. #23
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ich hab auch mal eine vierstellige 7-Segmentanzeige aus einem alten Videorekorder ausgeschlachtet. Allerdings konnte ich die Daten des Ansteuerchips noch lesen und diesen dann per Software-SPI auch erfolgreich ansteuern:
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    #define pause_lang for(i=0; i<20; i++) for(n=0; n<65000; n++) dummy^=n+i
    #define pause_mittel for(n=0; n<1000; n++) dummy ^= n
    #define pause_kurz for(n=0; n<10; n++) dummy ^= n
    
    void send_7segment(uint16_t wert, uint8_t punkt)
    {
    	#define enbh PORTA |= 1<<PA4 // Portdefinitionen
    	#define enbl PORTA &= ~(1<<PA4)
    	#define clkh PORTC |= 1<<PC0
    	#define clkl PORTC &= ~(1<<PC0)
    	#define datah PORTC |= 1<<PC1
    	#define datal PORTC &= ~(1<<PC1)
    
    	uint16_t i, n, dummy, temp;
    	uint8_t t, h, z, e;
    
    	clkh; // Clock ist high als Startbedingung
    	pause_kurz; // kurz warten
    	
    	if(wert == 0xffff) temp=wert; else // Blank
    		if(wert>9999) temp=0xeeee; // Überlauf "----"
    	else
    	{
    	   t=h=z=e=0; // dezimal nach BCD wandeln
    	   while(wert >= 1000) { t++; wert -= 1000; }
    	   while(wert >= 100) { h++; wert -= 100; }
    	   while(wert >= 10) { z++; wert -= 10; }
    	   while(wert > 0) { e++; wert -= 1; }
    
    		temp  = (t & 0xf); // BCD-Wert zsammenbasteln LSB ist links :(
    	   temp |= (h & 0xf) << 4;
    	   temp |= (z & 0xf) << 8;
    	   temp |= (e & 0xf) << 12;
    
    		/*
    		temp = (wert & 0xf000) >> 12; // BCD Ziffern tauschen
    		temp|= (wert & 0x0f00) >> 4;
    		temp|= (wert & 0x00f0) << 4;
    		temp|= (wert & 0x000f) << 12;
    		*/
    	}
    
    	enbl; // Schreiben aktivieren
    
    	if(punkt & 15) for(i=0; i<4; i++) // Dezimalpunkt setzen?
    	{
    		if(punkt & (1<<i)) datah; else datal;
    		pause_kurz;
    	   clkl;
    		pause_kurz;
    		clkh;
    		pause_kurz;
      	}
    	for(i=0; i<16; i++) // LSB von Digit 3 zuerst senden
    	{
    		if(temp & (1<<(15-i))) datah; else datal;
    		pause_kurz;
    	   clkl;
    		pause_kurz;
    		clkh;
    		pause_kurz;
      	}
    	enbh; // Ende Schreiben
    }
    
    int main(void)
    {
    	uint16_t i, n, dummy;
    
    	DDRA |= 1<<PA4;
    	DDRC |= 3;
    	
    	send_7segment(0xffff,0); // blank
    	pause_lang;
    	send_7segment(8888,0); // alle Digits
    
    	while(1)
    	{
    		pause_lang;
    		send_7segment(10000,0); // Überlauf
    		pause_lang;
    		send_7segment(1234,0);
    		pause_lang;
    		send_7segment(4321,0);
    		pause_lang;
    		for(i=0; i<10000; i++) { send_7segment(i,0); pause_mittel; }
    		for(i=9999; i; i--) { send_7segment(i,0); pause_mittel; }
    		send_7segment(i,0);
    	}
    	return 0;
    }


    Links sieht man die vier Treibertransistoren für die Module, daneben der Ansteuerchip (ein MC14499P) und zwischen Elko und Anzeige die Vorwiderstände für die einzelnen Segmente. In die Verbindungsleitungen zum AVR hatte ich vorsichtshalber ein paar Schutzwiderstände eingebaut. Das sieht eigentlich recht schick aus, deshalb viel Erfolg bei deinem Projekt.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2010
    Beiträge
    22
    "Die Zuordnung der Segmente der Anzeige zu den QA,QB,QC...QH" ja muss ich noch rausbekommen!

    bei einem Atmega8 sollte das dann in etwa so aussehen:

    Steckerleiste pins 4 bis 7 , transistoren für die Segmente, an PortD
    Steckerleiste pin 10 Clock an PB5(SCK) , pin 9 an MOSI? ist das so korrekt?
    Ich habe noch nie was mit SPI gemacht,kann ich dann mein MK2-Board noch über ISP programmieren,
    wenn die Platine am Board hängt?

    @radbruch
    schaut ja super aus wenns mal läuft,ich kanns kaum erwarten das meine Platine
    auch das Laufen lernt!

    hmm..sieht schon etwas schwierig aus das Programm.
    Geändert von Padavan (04.09.2011 um 18:05 Uhr)

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2010
    Beiträge
    22
    Hallo

    Ich habs Geschafft!
    Das Teil läuft jetzt wie gewünscht ,vielen dank nochmal an alle die geholfen haben!
    hier mal ein Bild:
    Klicke auf die Grafik für eine größere Ansicht

Name:	R0010041.jpg
Hits:	18
Größe:	57,7 KB
ID:	19908


    Anbei der Code in Bascom:

    '*******************************************
    '*** 7-Segment Modul aus DVD-Player mit ***
    '*** 3 tasten,1 IR-Sensor, 2 Status Leds ***
    '*** 05.11.2011 by Padavan ***
    '*******************************************

    $regfile = "m8def.dat"
    $crystal = 7372800 '7,37 Mhz
    $hwstack = 20
    $swstack = 8
    $framesize = 24

    'Ports

    Ddrd = &B11111111

    T3 Alias Portd.2 'Pin4,T4
    T4 Alias Portd.3 'Pin5,T3
    T2 Alias Portd.4 'Pin6,T2
    T1 Alias Portd.5 'Pin7,T1
    Led_gruen Alias Portd.6 'Pin8,Led Gr.

    Led_gruen = 1

    ' Variablen

    Dim Z As Byte
    Dim Tausend As Byte
    Dim Hundert As Byte
    Dim Zehner As Byte
    Dim Einer As Byte

    '***TEST***

    ' SPI
    Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.5
    Ddrb = &B111111


    ' Timer0
    Config Timer0 = Timer , Prescale = 256
    On Timer0 Timer0_isr
    Enable Timer0
    Enable Interrupts

    Const T0wert = 160 '112 für 100hz,160 für 150hz ,184 für 200hz


    Tausend = 249 '&B11111001
    Hundert = 164 '&B10100100
    Zehner = 176 '&B10110000
    Einer = 153 '&B10011001


    'Main
    Do


    Loop

    End

    Timer0_isr:

    Timer0 = T0wert
    Incr Z

    If Z = 1 Then
    T1 = 0
    Spiout Tausend , 1
    Elseif Z = 2 Then
    T2 = 0
    T1 = 1
    Spiout Hundert , 1
    Elseif Z = 3 Then
    T3 = 0
    T2 = 1
    Spiout Zehner , 1
    Elseif Z = 4 Then
    T4 = 0
    T3 = 1
    Spiout Einer , 1

    Elseif Z = 5 Then
    T4 = 1
    Z = 0
    End If
    Return


    MFG
    Padavan
    Geändert von Padavan (05.09.2011 um 17:53 Uhr)

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. Suche Anzeigemodul I2C mit 3,8V
    Von Austrian im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 19.11.2010, 06:51
  2. Hallo und: Welches Board, welches Anzeigemodul... (Zeitmess)
    Von Djeff im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 14.05.2010, 08:39
  3. 4 fach Audio Umschalter
    Von Lord Baka im Forum Elektronik
    Antworten: 24
    Letzter Beitrag: 16.03.2010, 19:42
  4. 12 fach Umschalter
    Von mani im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 29.01.2005, 20:30
  5. I2C-Relaiskarte (8-fach)
    Von Arme Sau im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 19.01.2005, 18:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen