- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Anregungen für LCD-Display Projekte

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von ts230
    kann ich auch ein 2x16 Display im 4bit mode anschließen???Das braucht 6 Pins oder?Kann ich auch zwei PCF8591 Anschließen?
    Klar geht das. Es sollten alle Displays bis 4x40 Zeichen anschließbar sein. Ein DOGM162 (2x16 Zeichen) funktioniert bei mir ohne Probleme.
    Siehe
    http://www.asurowiki.de/pmwiki/pmwik...LCDErweiterung

    Der PCF8591 hat ebenso wie der PCF8574 3 Adress Pins. Damit lassen sich von jedem Chip bis zu 8 an einem I2C Bus betreiben. Also 8 PCF8574 und 8 PCF8591. Du mußt nur jeweils die Adress Pins anders beschalten (binaer 0..7).

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    24.10.2007
    Ort
    San Jose
    Beiträge
    43
    Danke fuer die schnelle Antwort.Die Teile werde ich in den naechsten Tagen bei Reichelt bestellen.

    Gruss ts230
    Euer ts230
    [schild=14 fontcolor=008000 shadowcolor=FF0000 shieldshadow=1]Roboter sind cool[/schild]

  3. #13
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    ts230: sag mal kannst du evt deinen wohort etwas ändern? so ist die halbe seite nur mit den avataren gefüllt da dein langer wohnort die spalte streckt...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    24.10.2007
    Ort
    San Jose
    Beiträge
    43
    @damaltor
    Hab ich gemacht

    gruss ts230
    Euer ts230
    [schild=14 fontcolor=008000 shadowcolor=FF0000 shieldshadow=1]Roboter sind cool[/schild]

  5. #15
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    super danke =) kannst den wohnort natürlich gern "normal" eintragen...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    57
    Beiträge
    847
    Nun habe ich folgenden Code zusammengebastelt:

    Code:
    #include "asuro.h"
    #include "lcd.h"
    
    const char Eye_L[8] PROGMEM = {0X00,0X00,0X1C,0X00,0X04,0X00,0X01,0X03};					  
    const char Eye_R[8] PROGMEM = {0X00,0X00,0X07,0X00,0X04,0X00,0X10,0X18};
    
    const char MouthA[8] PROGMEM = {0X00,0X00,0X02,0X01,0X00,0X00,0X00,0X00};
    const char MouthB[8] PROGMEM = {0X03,0X01,0X00,0X00,0X18,0X07,0X00,0X00};
    const char MouthC[8] PROGMEM = {0X18,0X10,0X00,0X00,0X03,0X1C,0X00,0X00};
    const char MouthD[8] PROGMEM = {0X00,0X00,0X08,0X10,0X00,0X00,0X00,0X00};
    
    
    void smily_load(void)		//Nötige Sonderzeichen in das Display laden
    {
    	lcd_setchar(0,Eye_L);
    	lcd_setchar(1,Eye_R);
    
    	lcd_setchar(4,MouthA);
    	lcd_setchar(5,MouthB);
    	lcd_setchar(6,MouthC);
    	lcd_setchar(7,MouthD);
    }
    
    void smily_draw(void)		//Smily mit Sonderzeichen auf dem Display darstellen
    {
    	lcd_home();
    	lcd_gotoxy(2,0);
        lcd_putc('(');			//linkes Ohr
    	lcd_putc(0);			//linkes Auge
    	lcd_putc(1);			//rechtes Auge
    	lcd_putc(')');			//rechtes Ohr
    
    	lcd_gotoxy(2,1);
    	lcd_putc(4);			//Mund A
    	lcd_putc(5);			//Mund B	
    	lcd_putc(6);			//Mund C
    	lcd_putc(7); 			//Mund D
    }
    
    int main(void)
    { 
    
    while(1) 
    { 
    
    unsigned char i; 
    unsigned char taste=0; 
    
    Init(); 
    lcd_init(LCD_DISP_ON);	
    
    for(i=0;i<10;i++) 
    { 
    PollSwitch(); 
    } 
    taste=PollSwitch(); 
    
    if (taste==0) 
    { 
    MotorDir(FWD,FWD); 
    MotorSpeed(200,200);
    smily_load();
    smily_draw();
    
    
    } 
    else 
    { 
    MotorSpeed(0,0); 
    BackLED(ON,ON); 
    Sleep(100); 
    for(i=0; i<210; i++) 
    { 
    MotorDir(RWD,RWD); 
    MotorSpeed(130,130); 
    Sleep(100);
    MotorSpeed(0,0); 
    	lcd_init(LCD_DISP_ON_CURSOR_BLINK);	
    	lcd_puts("Ich bin");
    	lcd_gotoxy(3,1);					lcd_puts_P("ASURO");	 
    } 
    
    
    for(i=0; i<140; i++) 
    { 
    MotorDir(FWD,RWD); 
    MotorSpeed(140,140); 
    Sleep(100); 
    } 
    BackLED(OFF,OFF); 
    } 
    
    Sleep(100); 
    } 
    
    return 0; 
    }
    Damit habe ich leider Probleme: Während der ASURO durchs Zimmer fährt soll das Gesicht angezeigt werden. Bei Betätigung eines Tasters (anstossen) soll das Display wechseln zu "Ich bin Asuro", der Asuro eine Kehrwendung machen und das Display wieder zurückwechseln.

    Es wird aber leider nur Quatsch am Display angezeigt, ausserdem bleibt der Asuro beim anstossen stehen.

    Was ist nicht richtig, bitte um Hilfe?

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    57
    Beiträge
    847
    Ich habe nun etwas anderes versucht. Das Programm misst die Batteriespannung und stellt sie dann grafisch dar. Zusätzlich erscheint noch eine "Liebeserklärung" an den Asuro.

    Wer will kann es gerne ausprobieren und mir ein Feedback geben.

  8. #18
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo,

    zu deinem vorigen Code ein paar Anmerkungen.
    * Die Init und InitLCD sollten nur einmal beim Programmstart aufgerufen werden, nicht innerhalb der while Schleife.
    * Innerhalb der for Warte Schleifen werden MotorSpeed und PrintLCD gemacht. Die brauchen ebenfalls nur einmal außerhalb der Warteschleifen aufgerufen werden.

    Dein anderes Programm werde ich bei Gelegenheit mal ausprobieren. Leider hat mich meine Frau derzeit auf Roboter Entzug gesetzt.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen