如何解决在 arduino 中将小阵列分解为更大的阵列以进行盲文应用
我不太倾向于使用 arduino,但这次我卡在了这部分。
我正在尝试为我有残疾和视力障碍的朋友提供盲文翻译器。这个数组的每一列遇到1
时都会有一个穿孔int arr[][50] = {
{ 0,0 },{ 0,0 }
};
这是我的数组,它将存储所有的点,这意味着 1 是一个点,0 是一个空格。我不知道的预期结果String str_in="A B C"
应该
int arr[][50] = {
{ 1,1,0 }
};
每两个字符应该是一个字母。
但我只能在数组中添加一个字母来替换内容,并且总是以字母“ C ”结尾,例如,我知道这可能是语法错误。但是我尝试了很多方法都没有成功。
我有这个方法可以将翻译后的字母复制到代码的循环体中到我的主数组中。
void copiar(int jj[][2])
{
for (int letra = 0; letra < 50;) {
for (int i = 0; i < 3; i++)
for (int j = 0; j < 2; j++)
arr[i][letra] = jj[i][j];
letra = letra + 2;
}
}
为了翻译每个盲文字符,我使用这种方法来翻译字符串中的每个字母,并给出字母的大小写。
void MatrixB(char a)
{
switch (a) {
case 'a': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'b': {
int k[][2] = { { 1,{ 1,0 } };
copiar(k);
} break;
case 'c': {
int k[][2] = { { 1,1 },0 } };
copiar(k);
} break;
case 'd': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'e': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'f': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'g': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'h': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'i': {
int k[][2] = { { 0,0 } };
copiar(k);
} break;
case 'j': {
int k[][2] = { { 0,0 } };
copiar(k);
} break;
case 'k': {
int k[][2] = { { 0,0 } };
copiar(k);
} break;
case 'l': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'm': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'n': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'o': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'p': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'q': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'r': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 's': {
int k[][2] = { { 0,0 } };
copiar(k);
} break;
case 't': {
int k[][2] = { { 0,0 } };
copiar(k);
} break;
case 'u': {
int k[][2] = { { 1,1 } };
copiar(k);
} break;
case 'v': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'w': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'x': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'y': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
case 'z': {
int k[][2] = { { 1,0 } };
copiar(k);
} break;
}
}
我的循环体声明了这个 MatrixB 函数,所以每次遇到一个字母时,它都会将它添加到我的主数组中 arr
使用 copiar()
方法
我的循环体看起来像这样:
void loop() {
for (int i = 0; i <= in_str.length() - 1; i++) {
if (String(in_str.charat(i)) != " ") {
MatrixB(toLowerCase(in_str.charat(i)));
printA(arr);
delay(200);
}
else if (String(in_str.charat(i)) == " ") {
Serial.println("Aqui va un espacio");
}
}
//printA(arr);
delay(500);
}
这张纸有 50 个字符的限制,这就是为什么我要做这么大的数组。也因为我不知道是否还有其他方法。
我不是 arduino 代码或 C++ 的专家,所以任何类型的指导和帮助都会有所帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。