Ett litet display

Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Ett litet display

Inlägg av Icecap »

Håller på med en grej som bl.a. behöver ett litet display. Så jag ritade ett sådan.

Slutresultatet blev med en roterande pulsgivare med tryckknapp på axeln samt ett 5x7 LED displaymodul på. För kommunikation finns det ett RS485-interface på och för spänningsmatning finns det en 5V LDO-regulator på också, då kan kabeln till displayen ha lite högre spänning och allt blir ändå rätt.
100_2479.JPG
100_2480.JPG
Processorn är en Renesas M16C-26A. Röda mini-kontaktdonet är ICSP-kontakten, den medger samtidig UART-kommunikation via det nydesignade RS232-interface. Det var ett par missar, den keramiska resonator var felbeställd så den var för liten och jag kom fram till att jag behövde avkoppla rotationsbrytarna då de räknas direkt av hårdvaran. Man kan nämligen programmera vissa av timerna att fungera som bi-fas räknare så att man kan koppla rotationsgivaren direkt på två ingångar (med erfoderlig pull-up såklart), ställa timern rätt (i detta fall Timer A4) och sedan bara läsa timerns värde som ändras i takt med pulserna.

Såklart har jag mjukvaran till displayen igång, jag kan ha omkopplaren över eller under displaymodulen, bara vid att ändra en enkel definition.
Displayen kan styras i ljusstyrka med ett enkelt kommando mellan 1% och 100%.
Ska det visas fler tecken än vad som kan visas på displayen (1 tecken) rullas det automatisk till nytt skrivs.
Man kan ändra rullhastigheten med ett enkelt kommando.
UART-kommunikationen via programmeringsdonet fungerar perfekt medelst interruptdriven sändning.

Det kvarstår att styra RS485 ordentligt med riktning osv. men jag borde vara i mål där, har bara inte hunnit verifiera allt än.

Storleken på kretskortet är 32x50mm.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Re: Ett litet display

Inlägg av MicaelKarlsson »

Snyggt och intressant :tumupp:
Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: Ett litet display

Inlägg av Johanb »

Det där kunde bli ett snyggt kodlås typ roterande skiva på kassaskåp :)
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ett litet display

Inlägg av Icecap »

Hmm... ja, det kunde det faktisk. Det är tänkt att sitta i en grävmaskin där man ska kunde välja inställningen 0-9. Dock funderade jag en hel del över hur man skulle göra så att man kunde visa längre texter ifall man skulle skriva ut ett felmeddelanden och då valde jag detta punkt-matris display, då kan man rulla ut texten och fortfarande läsa den.

Att göra samma sak med ett enda 7-segment display är inte lika enkelt...

EDIT: Lite kul har jag ju... Nu har jag två av dessa display kopplat ihop. De skickar nu värden till varandra och visar dom. De växlar så att den ena skickar ett värde på RS485-bussen till den andra, detta värde tas emot, det adderas 1 och värdet visas rullande (när det är stort nog), När visningen har rullat klart skickas det nya värde tillbaka och så kör de fram och tillbaka.

Nu får de stå till imorgon, då får jag se om de har ballat ut eller om det har fungerat bra.
Användarvisningsbild
Jonaz
Inlägg: 2326
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Re: Ett litet display

Inlägg av Jonaz »

Skulle du vilja ge ut schemat för pulsgivaren?
Sitter själv med en, men den hoppar lite fram och tillbaka när man vrider, och jag vet inte om det är koden till mikroprocessorn eller kringkomponenter som är galet.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Ett litet display

Inlägg av Icecap »

Öhh... Schema?

Pulsgivaren har två brytare, deras gemensamma del är koplat till GND och varje av de andra sitter till var sitt pull-up motstånd. Därifrån kastas de direkt in till Timer A4 på ingången hhv. utgången.

Men då Timer A4 är ställd till bi-fas räkning är utgången egentligen en ingång... Men hur som helst tar Timer A4 hand om all räkningen förutom när det blir over-/underflow men det är en enkel sak att ta hand om.

Jag har dock lagt till var sin 10nF kondensator över brytarna för att stoppa evt. kontaktstuts.

Jag har dock löst denna dekodning förut, då med ren mjukvara. Då startade jag en timer-interrupt med en hög hastighet, tror att det var 1kHz. Den kollade sedan ingångarna och följde mönstret och räknade upp/ner efter behov.
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Re: Ett litet display

Inlägg av 007sweden »

Som ett exempel till de som har arduino kan jag visa min lösning på ett enkelt problem.

Kod: Markera allt

int ledPin = 11;

int lastRead = blueledPin;

int encoderK1pin = 4;
int encoderK2pininterrupt = 0; //pin 2

volatile int encoderPos = 0;

void setup()
{
  // init pins as outputs
  pinMode(ledPin, OUTPUT);

  
  //init pins at inputs
  pinMode(encoderK1pin, INPUT);
  
  //Attach the interrupt
  attachInterrupt(encoderK2pininterrupt, encoderChange, RISING);
  
  
  Serial.begin(9600);
  
    

  
  
}

//encoder interrupt function
void encoderChange()
{
  if(digitalRead(encoderK1pin) == HIGH)
  {
    encoderPos++;
  } else
  {
    encoderPos--;
  }
  
}

void loop()
{
  byte brightness;

  brightness = map(encoderPos, 0, 2047, 0, 255);
  analogWrite(ledPin, brightness);

  
  Serial.println(encoderPos);
  delay(50);


}
K1 och K2 är då de 2 pinnarna från encodern.
Skriv svar