I2C Display och Arduino

Berätta om dina pågående projekt.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: I2C Display och Arduino

Inlägg av Icecap »

Definitivt!
Wihelm
Inlägg: 600
Blev medlem: 18 juni 2019, 17:30:19
Ort: Nybro

Re: I2C Display och Arduino

Inlägg av Wihelm »

Var mera att har man programmerare så spelar det ingen roll. Vill man ha bootloader så kan köra in den själv.
Användarvisningsbild
pi314
Inlägg: 5830
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: I2C Display och Arduino

Inlägg av pi314 »

Jag var ett tag inriktad på att använda Oled-displayer. Men, jag tycker att dom är väl små ibland och testar nu lite med LCD som alternativ. Båda har för- och nackdelar...

Här är två LCD (1602/I2C) och en Oled.

230806_1602_LCD_and_Oled.jpg
/Pi
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: I2C Display och Arduino

Inlägg av SeniorLemuren »

När jag häll på med dessa displayer på stenåldern så fanns inte drivrutiner för ÅÄÖåäö så det fick man fixa själv på lediga adresser. Hur är det i dag?
Användarvisningsbild
pi314
Inlägg: 5830
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: I2C Display och Arduino

Inlägg av pi314 »

SeniorLemuren:
Jag kan inte minnas att jag hittat någon, LCD eller OLED, som har åäö som standard. Jag gjorde t.ex. ett eget bibliotek till OLED för ett halvår sedan. Då la jag in "begrånsad UTF-8-support" så att västeuropeiska språk kunde hanteras. Samt några speciltecken som jag ville ha, som t.ex. "°" (gradtecken).

/Pi
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: I2C Display och Arduino

Inlägg av Henry »

Det finns väldigt billiga och bra TFT displayer i mängder, jag gick över till dom för ett antal år sedan då LCD ju var rätt begränsat med tex grafik om ville göra större siffror som såg snygga ut eller lite färglagd grafik som annars var en omöjlighet. OLED håller jag mig lite ifrån då de inte tycker om statiska bilder/tecken samt väldigt dyra om man vill går upp i storlek mot tex 3.5 - 4" där en TFT bara kostar någon lite dryg 200-lapp.

Den klassiska LCD kontrollern HD44780 har sedan så vitt jag vet en intern teckenuppsättning för litet ä och ö men inte å av någon konstig anledning, går dock rätt lätt att fixa en egen teckenuppsättning för det annars men det är länge sedan sist så kommer inte ihåg.
MiaM
Inlägg: 9990
Blev medlem: 6 maj 2009, 22:19:19

Re: I2C Display och Arduino

Inlägg av MiaM »

Den "konstiga" anledningen är väl att å används i färre språk än ä och ö, kanske? Eller möjligtvis används av färre personer.

Tyska har t.ex. Ä och Ö men inte Å.

Ungerska har Ö men inte Ä och Å. (Å andra sidan har ungerska alla vokaler med lutande flerpar ovanför, som indikerar att det är lång vokal, och dessa räknas tydligen som separata tecken och därmed anses alfabetet på ungerska ha 44 tecken).
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: I2C Display och Arduino

Inlägg av Henry »

Nej visst är det väl så men som sagt rätt lätt fixat ändå.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6953
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: I2C Display och Arduino

Inlägg av Marta »

En original Hitachi 44780 kan ha ÅÄÖ. Den finns i två vaianter. Den ena har europeiska och ryska krumelurer i de 128 översta positionerna, däribland alla de tre svenska.
Den andra har två blank-kolumner, chinakrumelurer och några få europeiska där endast ÄÖ ingår.
Alla har de 8 lägsta positionerna i RAM för användardefinierade tecken.
MiaM
Inlägg: 9990
Blev medlem: 6 maj 2009, 22:19:19

Re: I2C Display och Arduino

Inlägg av MiaM »

Med tanke på att Hitachi är japanskt och kretsen dök upp på den tiden det inte gjordes mycket handel mellan västvärlden och Kina så är det väl troligt att de asiatiska tecknen är japanska och inte kinesiska, eller?
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6953
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: I2C Display och Arduino

Inlägg av Marta »

Du har givetvis helt rätt.
Den kretsvariant som har möjlighet till 10 linjer och därmed nedsänkta gemener har även de japanska krumelurerna och tre blank-kolumner.
Den andra varianten har 8 linjers tecken och samtliga positioner är använda. Definitivt fler användbara krumelurer i denna.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: I2C Display och Arduino

Inlägg av Henry »

Tänkte väl fasen att jag sett något med Å, Ä och Ö nån gång.
Användarvisningsbild
4kTRB
Inlägg: 18404
Blev medlem: 16 augusti 2009, 19:04:48

Re: I2C Display och Arduino

Inlägg av 4kTRB »

Intressant läsning om dessa tecken.
Databladet till den modul jag köpte ser ut så här och litet "ö" verkar finnas med.
tecken_LCD.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18404
Blev medlem: 16 augusti 2009, 19:04:48

Re: I2C Display och Arduino

Inlägg av 4kTRB »

För övrigt så håller jag på med att få en uppfattning av hur det där FTDI-chippet kan programmeras.
Rena djungeln!
Jag har i vilket fall testat loopback med RX och TX sammankopplade.
Först via Putty och X-CTU och sedan ett program i Java.
Ganska så kul för mig att det finns Java-stöd. Java-funktionerna
är i princip samma som https://www.ftdichip.com/Support/Docume ... 00071).pdf

Det här programmet testar loopback. Funkar med D2xx och VCP, som är det som installeras.
Man kan välja bort att VCP ska användas i enhetshanteraren och då används D2xx.
Skillnaden i koden nedan är att com-porten inte visas för D2xx medans om man använder VCP så får jag COM5 som resultat.
Med VCP verkar det inte gå att ha en Seriell Terminal i Eclipse samtidigt för då går det inte öppna kommunikationen med adaptern.

Kod: Markera allt

package yad2xx;


import static net.sf.yad2xx.FTDIConstants.FT_BAUD_9600;
import static net.sf.yad2xx.FTDIConstants.FT_BITS_8;
import static net.sf.yad2xx.FTDIConstants.FT_FLOW_NONE;
import static net.sf.yad2xx.FTDIConstants.FT_PARITY_NONE;
import static net.sf.yad2xx.FTDIConstants.FT_STOP_BITS_1;

import java.io.PrintStream;
import net.sf.yad2xx.Device;
import net.sf.yad2xx.FTDIException;
import net.sf.yad2xx.FTDIInterface;

/*
 * https://github.com/aushacker/yad2xx/blob/master/yad2xxJava/src/test/java/net/sf/yad2xx/SerialEcho.java
 * 
 * Send and receive characters to the serial port. Connect tx to rx to get loopback.
 * 
 */
public class SerialEcho {

	public SerialEcho() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		try {
			PrintStream out = System.out;

			out.println("Serial Echo");
			out.println("-----------");
			out.println("D2XX Library version: " + FTDIInterface.getLibraryVersion());
			out.println();

			out.println("---------");
			if (FTDIInterface.getDevices().length > 0) {
				Device dev = FTDIInterface.getDevices()[0];				
				
				if (!dev.isOpen()) {
					out.println("Opening device 0");
					dev.open();
					out.println("Setting baud");
					dev.setBaudRate(FT_BAUD_9600);;
					out.println("Setting 8,N,1");
					dev.setDataCharacteristics(FT_BITS_8, FT_STOP_BITS_1, FT_PARITY_NONE);
					out.println("Setting flow control");
					dev.setFlowControl(FT_FLOW_NONE, (char) 0, (char) 0);
					out.println(dev.getModemStatus());
					out.println("ComPortNumber " + dev.getComPortNumber());
					out.println();
					// 48 45 4C 4C 4F = HELLO
					byte[] data = { (byte)0x48, (byte)0x45, (byte)0x4C, (byte)0x4C, (byte)0x4F };
					out.println("Sending data");
					for (int i = 0; i < 2; i++) {
						
						dev.write(data);
						try { Thread.sleep(100); }
						catch (InterruptedException ie) {}

						byte[] input = new byte[5];
						out.println("Reading bytes: " + dev.read(input));
						out.println((char)input[0] + " " + (char)input[1]+ " " + (char)input[2]+ " " + (char)input[3]+ " " + (char)input[4]);
					}
					out.println(dev);
					out.println("Closing device 0");
					dev.close();
					out.println(dev);
				} else {
					out.println("Unable to open device");
				}
			}
		} catch (FTDIException e) {
			e.printStackTrace();
			System.err.println("Function: " + e.getFunction());
			System.err.println("Status: " + e.getStatus());
		}
	}
}

Utskrift........

Kod: Markera allt

Serial Echo
-----------
D2XX Library version: 3.2.22

---------
Opening device 0
Setting baud
Setting 8,N,1
Setting flow control
ModemStatus(modem: 0, line: 60)
ComPortNumber -1

Sending data
Reading bytes: 5
H E L L O
Reading bytes: 5
H E L L O
Dev 0:
	Flags=1 (isOpen: true isHighSpeed: false)
	Type=5 (FT_DEVICE_232R)
	ID=4036001
	locID=11
	SerialNumber=A1083FUF
	Description=FT232R USB UART
	ftHandle=278236e9690

Closing device 0
Dev 0:
	Flags=0 (isOpen: false isHighSpeed: false)
	Type=5 (FT_DEVICE_232R)
	ID=4036001
	locID=11
	SerialNumber=A1083FUF
	Description=FT232R USB UART
	ftHandle=0
Användarvisningsbild
Hesabon
Inlägg: 244
Blev medlem: 6 oktober 2010, 21:30:26
Ort: Finland

Re: I2C Display och Arduino

Inlägg av Hesabon »

Du har också bokstaven 'ä' på plats 0xE1.
Jag har också använt displayer med samma chip. Lilla ö och ä finns alltså redan, Å, Ä, Ö samt å får man varje gång ladda ner på minnesplatserna 0x00..0x07. Det är sist och slutligen ganska enkelt.
Skriv svar