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 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.
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:
}