PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundsatzfrage: Mit TFT-Touchscreen einen Atmel steuern?



ensacom
23.10.2007, 19:14
Hallo, ich bin absoluter Neuling was Hardwareprogrammierung angeht, will mich aber über kurz oder lang damit intensiv auseinandersetzen.

Ich habe nun unter http://ledsee.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=144&category_id=23&manufacturer_id=0&option=com_virtuemart&Itemid=27 ein tolles Graphic Touch Screen LCD Display gefunden.

Meine Frage wäre nun, ist es möglich über so ein LCD einen Atmel zu steuern?
Also ich stelle mir eine graphische Benutzeroberfläche mit verschiedenen Buttons vor (Licht an/aus), Hupen etc.

Ist es außerdem möglich Werte von Sensoren (Temp, Regen, Helligkeit, Lautstärke) im Display anzuzeigen?

Danke schonmal

Downsizer
23.10.2007, 19:24
Ist etwas aufwändig aber kein Problem.

http://www.lcd-module.de/deu/touch/touch.htm

Da gibts auch die passende Windows-Software um das Panel selber einfach zu programmieren.

ensacom
23.10.2007, 19:39
Vielen Dank für die Info.
Es ging auch rein erst mal um die Machbarkeit.

Ich denke wenn ich soweit bin, wird sich hier sicher auch weiter Hilfe finden

Downsizer
23.10.2007, 21:29
Kein Thema. Sofern Du das EA-Modul nimmst, kann ich Dir weiterhelfen.

ensacom
23.10.2007, 22:30
Egal welches der EA-Module ich da nehme?
Ich sehe gerade dass auf dieser Seite nicht mal die Preise stehen.

Wenn Du mir sagen kannst welches ich da brauche, kann ich vielleicht mal auf anderen Seiten danach suchen. Habe hier z.B. ne gute Seite gefunden
http://ledsee.com/index.php?page=shop.browse&category_id=23&option=com_virtuemart&Itemid=27

Kennst Du dich richtig gut mit dem Modul und auch in der Programmierung eines Atmel aus?

Wie gesagt ich will mich jetzt intensiv mit diesem Thema beschäftigen und da wäre es schön jemanden zu haben den man ab und zu um Rat fragen kann.

Will mir jetzt erst mal die nötige Hardware zulegen, wobei ich einen USB-ISP, (so heißt das doch?) benötige, da ich an meinem Laptop weder serielle noch parallele Schnittstellen habe.

Werde wohl mal klein anfangen. LED-Steuerung, Dann vielleicht Sensorabfrage und dementsprechende Aktionen über den Atmel.

digitali
24.10.2007, 13:05
https://www.roboternetz.de/phpBB2/viewtopic.php?t=32952

Ich habe genau dieses Display bereits unter Bascom und nen ATMega128 erfolgreich verwendet.

Mit freundlichen Gruessen
Digitali

BASTIUniversal
24.10.2007, 13:07
Falsches Forum!

Wir haben auch was, das sich "AVR-Hardwarethemen" Forum nennt!

MfG
Basti

ensacom
24.10.2007, 13:08
Entschuldigung, wird nicht wieder vorkommen

Sany
30.10.2007, 16:46
Hallöchen,

Wie sieht denn die Ansteuerung bei einem Touchpanel aus einem alten PDA aus?

Hab einen Anschluss von 4 Pins.
Auf dem Touchpanel selbst steht nur "35FLM06CM"

Wie würde da die abarbeitung mit einem Atmel aussehen?

digitali
30.10.2007, 18:21
Bei vier Anschluessen wuerde ich ad hoc sagen genauso wie beim obengenannten Display. Dann duerfte das ein analog resistiver Touchscreen sein. Somit ist die Abfrage mit einem AVR ueberhaupt kein Problem. Und wie dieses dann schaltplanmaessig aussieht, wird hier im Forum an anderer Stelle ausfuehrlich beschrieben.

Mit freundlichen Gruessen
Digitali

Sany
31.10.2007, 19:56
Wenn ich nun doof fragen darf, und wo ? hab mit der suche bisher noch nichts gefunden :(

Sany
03.11.2007, 20:42
Nochmal das Thema aufrufen, entschuldigung.

Aber Wo finde ich solch ein Anschlussplan für solch ein Touchscreen?

digitali
03.11.2007, 22:57
Hallo,

unter:

RoboterNetz.de Foren-Übersicht » Forum » Eigene fertige Schaltungen und Bauanleitungen

befindet sich momentan ein Fred namens:

240x128 T6963 LCD mit Touch an ATMega128

Gleich im ersten Post von mir, befindet sich der Hinweis auf die Appnote #148 von www.mcselec.com.
Und wenn man dort die besagte Appnote herausklickt dann landet man auf:
http://www.mcselec.com/index.php?option=com_content&task=view&id=189&Itemid=57
Hier wiederum wird gleich auf der erste Bildschirmseite ein Schaltplan gezeigt, wo man einen analog resistiven Touchscreen an einem ATMega128 angeschlossen hat.
Und das war dann fuer mich genuegend Info um ebenfalls einen Touchscreen erfolgreich abzufragen.

Mit freundlichen Gruessen
Digitali

Sany
04.11.2007, 09:17
Hallo,

Habs nun endlich gefunden, hab auch das Szenario nach gestellt und den Code in GCC umgesetzt.

Hab anstatt den 100 Ohm Widerständen, 4x 470 Ohm verwendet.

Nur mir fehlt es gerade irgendwie an Verständnis.

A) Dürfen sich die Werte von X und Y nicht verändern, solang das Touchpanel nicht berührt wird?

Ich hab irgendwie die Dumpfe Vermutung das meine beschaltung nicht stimmt, weil wenn ich nun PIN1 und PIN2 mit meinem Messgerät, ändern sich die Werte.

Messe ich nun PIN1 und 3 krieg ich nur einen festen Wert der sich trotz berühren nicht verändert.

Ebenfalls verhält sich auch PIN 2&4 so...

Also mein Code sieht aktuell wie folgt aus:



uint16_t ReadChannel(uint8_t mux)
{
uint8_t i;
uint16_t result;

ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0); // Frequenzvorteiler
// setzen auf 8 (1) und ADC aktivieren (1)

ADMUX = mux; // Kanal waehlen
ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen

/* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest
also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */
ADCSRA |= (1<<ADSC); // eine ADC-Wandlung
while ( ADCSRA & (1<<ADSC) ) {
; // auf Abschluss der Konvertierung warten
}
result = ADCW; // ADCW muss einmal gelesen werden,
// sonst wird Ergebnis der nächsten Wandlung
// nicht übernommen.

/* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */
result = 0;
for(i=0; i<3; i++) {
// Eine Wandlung
ADCSRA |= (1<<ADSC);
// Auf Ergebnis warten...
while(ADCSRA & (1<<ADSC));

result += ADCW;
}
ADCSRA &= ~(1<<ADEN); // ADC deaktivieren (2)

result /= 3; // Summe durch vier teilen = arithm. Mittelwert

return result;
}

void debug(void)
{
char string[100];
uint16_t adcval1;
uint16_t adcval2;
uint16_t adcval3;
uint16_t adcval4;

DDRA |= (1<<PA0) | (1<<PA2); // ADC0 & ADC2 = Output
PORTA |= (1<<PA0); // ADC0 = High
PORTA &= ~(1<<PA2); // ADC2 = low

DDRA &= ~(1<< PA1) | (1<< PA3); // ADC1 & ADC3 = Input
_delay_ms(20);


/*adcval1 = ReadChannel(0); /* MUX-Bits auf 0b0000 -> Channel 0 */
/*adcval2 = ReadChannel(1); /* MUX-Bits auf 0b0000 -> Channel 1 */
/*adcval3 = ReadChannel(2); /* MUX-Bits auf 0b0000 -> Channel 2 */
adcval4 = ReadChannel(3); /* MUX-Bits auf 0b0000 -> Channel 3 */

adcval4 = 1024 - adcval4;

DDRA |= (1<<PA1) | (1<<PA3); // ADC0 & ADC2 = Output
PORTA |= (1<<PA1); // ADC0 = High
PORTA &= ~(1<<PA3); // ADC2 = low

DDRA &= ~(1<< PA0) | (1<< PA2); // ADC1 & ADC3 = Input

adcval3 = ReadChannel(2); /* MUX-Bits auf 0b0000 -> Channel 3 */
adcval3 = 1024 - adcval3;
lcd_ClearScreen();
lcd_GotoXY(1,1);
lcd_SelectFont(Arial, lcd_ReadFontData, BLACK);

sprintf(string, "CA0: %i\nCA1: %i\nCA2: %i\nCA3: %i ", adcval1, adcval2, adcval3, adcval4);
lcd_Puts(string);
_delay_ms(20);
}

Sany
04.11.2007, 10:55
Hab mir mal eben erlaubt, ein Bild von meinem Touchscreen zu machen.

Was ich vermute, das meine PINs evtl. nicht mit dem Beispiel übereinstimmen.

Aber wie kann ich das rausfinden?

Accenter
17.11.2007, 19:04
Arbeite auch gerade an einem Projekt mit einem Tocuhdisplay von Ledsee. Hab auch ein Video online ... Die Menuesteuerung funktioniert ziemlich gut (siehe Video).

http://www.beepworld.de/members/bascom/mega128_board.htm