01-05-2023, 22:48
Witam
Zaczynam przygodę z Arduino i studiuję początki.
Mam jednak 1 temat.
Wpadł mi gotowy program do wyników z matrycy 4x16.
Program działa i zwraca dwie zmienne [i],[j]
Potrzebuję wprowadzić do tego programu dodatkowy kod.
1. Wynik zmiennej [j] zamienić na liczbę binarną
2. Przesunąć liczbę binarną o 4 = "dodać 4 zera na końcu"
3. Zmienić poz. 2 na liczbę dziesiętną i dodać do niej zmienną [i]
Coś takiego.
[i] 6
[j] 4=100 (bin)
100(4x0) = 1000000
1000000 = 64 (bin)
64+[i] = 70
Wiem, że to jeszcze nie mój etap, ale wdzięczny będę za pomoc. Może kiedyś pomogę komuś z grupy.
Kod aktualny
int masterLines = 17; //Change here to the number of lines of your Master Layer
int slaveLines = 5; //Change here to the number of lines of your Slave Layer
int matrixMaster[] = {20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52}; //Pins the Master Layer
int matrixSlave[] = {29, 31, 33, 35, 37 }; //pins the Slave Layer
int scal;
void setup() {
Serial.begin(9600);
Serial.println("Start"); //Start
for(int i = 0; i < slaveLines; i++){
pinMode(matrixSlave[i], INPUT_PULLUP);
}
for(int i = 0; i < masterLines; i++){
pinMode(matrixMaster[i], OUTPUT);
digitalWrite(matrixMaster[i], HIGH);
}
}
void loop() {
for(int i = 0; i < masterLines; i++)
{
digitalWrite(matrixMaster[i], LOW);
for(int j = 0; j < slaveLines; j++)
{
if(digitalRead(matrixSlave[j]) == LOW)
{
Serial.print(j);
Serial.print(",");
Serial.println(i);
delay(500);
break;
}
}
digitalWrite(matrixMaster[i], HIGH);
}
}
Zaczynam przygodę z Arduino i studiuję początki.
Mam jednak 1 temat.
Wpadł mi gotowy program do wyników z matrycy 4x16.
Program działa i zwraca dwie zmienne [i],[j]
Potrzebuję wprowadzić do tego programu dodatkowy kod.
1. Wynik zmiennej [j] zamienić na liczbę binarną
2. Przesunąć liczbę binarną o 4 = "dodać 4 zera na końcu"
3. Zmienić poz. 2 na liczbę dziesiętną i dodać do niej zmienną [i]
Coś takiego.
[i] 6
[j] 4=100 (bin)
100(4x0) = 1000000
1000000 = 64 (bin)
64+[i] = 70
Wiem, że to jeszcze nie mój etap, ale wdzięczny będę za pomoc. Może kiedyś pomogę komuś z grupy.
Kod aktualny
int masterLines = 17; //Change here to the number of lines of your Master Layer
int slaveLines = 5; //Change here to the number of lines of your Slave Layer
int matrixMaster[] = {20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52}; //Pins the Master Layer
int matrixSlave[] = {29, 31, 33, 35, 37 }; //pins the Slave Layer
int scal;
void setup() {
Serial.begin(9600);
Serial.println("Start"); //Start
for(int i = 0; i < slaveLines; i++){
pinMode(matrixSlave[i], INPUT_PULLUP);
}
for(int i = 0; i < masterLines; i++){
pinMode(matrixMaster[i], OUTPUT);
digitalWrite(matrixMaster[i], HIGH);
}
}
void loop() {
for(int i = 0; i < masterLines; i++)
{
digitalWrite(matrixMaster[i], LOW);
for(int j = 0; j < slaveLines; j++)
{
if(digitalRead(matrixSlave[j]) == LOW)
{
Serial.print(j);
Serial.print(",");
Serial.println(i);
delay(500);
break;
}
}
digitalWrite(matrixMaster[i], HIGH);
}
}