MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Jag vet inte vad de korrekta termerna är, men en normal microprocessor gör en instruktion i taget och det den instruktionen leder till händer "direkt".

En PLC är som sagt var designad för att ersätta logik, den brukar alltså jobba:

1. Läs av alla ingångar
2. Kör igenom programmet
3. Ställ alla utgångar
och sen börja om från 1.

Det innebär alltså att det spelar ingen som helst roll i vilken ordning saker och ting görs i programmet, allting händer ändå "samtidigt".
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Okej. Det är så man ska använda en PLC till. Allt ska hända samtidigt. Ungefär.

Jag får inte igång min MAX7219. Jag har kopplat rätt och testat den med ett bibliotek i Arduino. Det fungerar. Nu försöker jag skapa eget bibliotek men jag får ingen bra timing på klockan.

Jag vet inte hur ska ska tolka figur 1 i databladet?
Kan jag slå CLK hög samtidigt jag slår på DIN hög/låg? Se funktion talk()

Jag har lyckats få kunna få kontrollen på en viss del som jag har skrivit ut. Men skriver jag 3 så blir något annat hokus pokus med också på de övriga.

Vad kan det bero på? Clocka är felaktigt inställd?

Edit: Så där! Efter hårt jobb så har jag lyckats skapa eget bibliotek till MAX7219. Nu fungerar det :)

Kod: Markera allt

int DIN = 7;
int CLK = 6;
int CS = 5; 

void setup() 
{
  pinMode(13, OUTPUT);
  pinMode(DIN, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(CS, OUTPUT);

  boolean STARTUP[16] =     {false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, true};
  boolean DECODE[16] =      {false, false, false, false, true, false, false, true, false, false, false, false, false, false, false, false};
  boolean INTENSITY[16] =   {false, false, false, false, true, false, true, false, false, false, false, false, true, false, false, false};
  boolean DIGI5[16] =       {false, false, false, false, false, true, true, false, false, true, false, true, true, false, true, true};
  boolean SCANLIMIT[16] =   {false, false, false, false, true, false, true, true, false, false, false, false, false, false, true, true};
  boolean displayTest[16] = {false, false, false, false, true, true, true, true, false, false, false, false, false, false, false, true};

  talk(DECODE); // Decode
  talk(INTENSITY); // Ljusstyrka
  talk(SCANLIMIT); // Scanna
  talk(STARTUP); // Starta
  talk(DIGI5); // Skriv digit 5
  talk(displayTest); // Testa 

}

void talk(boolean arr[16])
{
  digitalWrite(CS, LOW);
  boolean flag = true; 
  
  int i = 0;
  while(i <= 15)
  {
    if (flag == true)
    {
      digitalWrite(CLK, false);
      digitalWrite(DIN, arr[i]);
      digitalWrite(13, true);
      flag = false;
    }
    else
    {
      digitalWrite(CLK, true);
      digitalWrite(13, false);
      flag = true;
      i++;
    }
    delay(10);
  }

  digitalWrite(CS, HIGH);
  delay(10);
}

void loop() 
{
  // put your main code here, to run repeatedly:

}
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Nja, en PLC är till för att saker ska hända på utgångarna när det händer nåt på ingångarna.

Sen finns det idag lösningar där man använder "step"-logik.


Om man har hållit på med att bygga tillståndsmaskiner med logikgrindar, reläer eller pneumatik så känns det genast mycket mer logiskt med en PLC:)
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Berätta mer om step logik.

Jag tänker nu få min MAX7219 fungera med min PLC.

Så med PLC så använder man inte SPI eller i2c?
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Googla på "plc step logic" eller "plc state machine".


Att använda in/utgångarna på en PLC för SPI eller i2c får nog klassas som rejäla "hack". På många PLC är ju utgångarna reläer, det blir nog kvalificerat svårt att få dem att växla tillräckligt snabbt...

Dock så kan väl en PLC ha såna anslutningar för programmeringen och/eller kommunikationer med andra PLC eller överliggande system.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Nerre skrev:Googla på "plc step logic" eller "plc state machine".


Att använda in/utgångarna på en PLC för SPI eller i2c får nog klassas som rejäla "hack". På många PLC är ju utgångarna reläer, det blir nog kvalificerat svårt att få dem att växla tillräckligt snabbt...

Dock så kan väl en PLC ha såna anslutningar för programmeringen och/eller kommunikationer med andra PLC eller överliggande system.
Detta känner jag igen ifrån PLC kursen. Den gör steg för steg. Först nätverk 1, sedan nätverk 2 osv.

Alltså om jag ska göra en while loop så måste jag definiera om den loopen så det blir mer step by step?

Finns det inte goto i PLC?
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Att du frågar efter goto visar att du fortfarande inte har förstått hur en PLC är tänkt att fungera...

Hur skulle du implementera goto med logikgrindar eller reläer?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Nerre skrev:Att du frågar efter goto visar att du fortfarande inte har förstått hur en PLC är tänkt att fungera...

Hur skulle du implementera goto med logikgrindar eller reläer?
Jag vet hur en PLC fungerar. Men jag vill programmera den som en mikrokontroller utan att använda en mikrokontroller.

Det måste vara möjligt. Annars är det ju helt värdelöst med PLC.
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Nej, det är inte värdelöst med PLC, eftersom de främst är framtagna just för att ersätta reläer och logikkretsar.

Vill du använda en PLC som mikrocontroller behöver du antagligen byta ut den inbyggda mjukvaran (som tolkar PLC-"programmeringen"). En PLC programmeras ju normalt inte på låg nivå utan på en högre nivå där in- och utgångar i princip är virtualiserade för att förenkla programmeringen.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Icecap »

"Jag vet hur en PLC fungerar. Men jag vill programmera den som en mikrokontroller utan att använda en mikrokontroller."

Men när du nu vet hur en PLC fungerar borde det väl på något vis gå in i din skalle att det du vill ha är just det en PLC inte ska göra.

Vill du jobba med µC ska du använda en µC!

Ska man skruva i en skruv är en skruvmejsel ett bra verktyg - men du verkar välja en häcksax...
Användarvisningsbild
Glenn
Inlägg: 36641
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Glenn »

icecap: "Jag vet hur en häcksax fungerar. Men jag vill utnyttja den som en skruvmejsel utan att använda en skruvmejsel."

Glasklart ju :)
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Så man kan inte ha ett program på PLCn som körs en gång och sedan när det har körts klart så körs det inte mer?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Al_Bundy »

Glenn skrev:icecap: "Jag vet hur en häcksax fungerar. Men jag vill utnyttja den som en skruvmejsel utan att använda en skruvmejsel."

Glasklart ju :)
Nej. Det är inte glasklart. Jag är den som utforskar områden och testar det som folk anses är omöjligt och jag lyckas ibland. Sedan finns det folk som lägger sig ned och drar upp tröjan och spelar död.
Användarvisningsbild
Glenn
Inlägg: 36641
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Glenn »

Av uppriktigt intresse så frågar jag då, vad har du lyckats med som folk sagt var omöjligt ?

edit: det ovan kanske låter nedsättande, men det är INTE så jag menar, jag tycker det skulle vara intressant att få det beskrivet.

(helt ovidkommande info, men lite relevant iaf: I min ungdom så byggde jag och en kompis en liten tja, goped ? nåt sånt, jag svetsade ihop "ramen" med hjälp av rör, då kommer en annan kompis förbi som just då gick 4årig teknisk och började gnälla om att "det kommer aaaldig att hålla" "den kommer att vika sej så fort ni ställer er på den där" och rabbla en massa hållfasthetssiffror för stål och tjocklekar och att vi borde räkna på det där innan vi byggde för det var helt fel, det visste han för han hade minsann lärt sej räkna på hållfasthet nyligen osv.. själv bedömde jag att det skulle hålla baserat på min erfarenhet av stålrör och min svetskunskap.. när den var klar och stod på hjul så ställde jag mej på den, den höll, jag hoppade lite uppå och ner, den höll ändå.. kompisen stod och fånglodde, sa sen irriterat "Men den SKA inte hålla!" och cyklade sen därifrån" :) )
Senast redigerad av Glenn 10 juni 2016, 13:24:18, redigerad totalt 2 gånger.
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: MAX 7219 7-segmentdrivare - Vad betyder X i databladet?

Inlägg av Nerre »

Al_Bundy skrev:Så man kan inte ha ett program på PLCn som körs en gång och sedan när det har körts klart så körs det inte mer?
Ska jag behöva skriva det igen? Det har skrivits minst två gånger tidigare i tråden.

En PLC har en inbyggd firmware som snurrar i en "oändlig" loop.

Denna inbyggda firmware körs så här:

1. Läs alla ingångar
2. Applicera logiken (d.v.s. det du har "programmerat")
3. Ställ alla utgångar
och sen börjar den om från början.

Det du kan påverka med normal programmering är alltså bara punkt 2.

Sen KAN man såklart i den logiken skapa en tillståndsmaskin som går igenom tillstånd för tillstånd. Men den inbyggda firmwaren kommer alltså att snurra hundratals eller rentav tusentals varv för varje "steg". Och en tillståndsmaskin stegar bara när villkor är uppfyllda.

För att nå det du vill kanske du kan sätta upp en timer som "klocka", låta den stega igenom en räknare med avkodare och från varje utgång på avkodaren styr du vilka utgångar som ska vara på och av. Men du måste du alltså "simulera" en enkel mikroprocessor med logik.

Men det är ju inte helt optimalt att låta en avancerad mikroprocessor simulera en enklare mikroprocessor.

Det GÅR såklart även att göra samma sak i Minecraft...
Skriv svar