Stap 4: Código
Nl este ejemplo, vamos een crear VN montón de caminadores aleatorios. Zoon como partículas que caminan nl cualquier dirección. Para crear aleatoriedad utilizamos la función random()y como verán por el resultado, nl Arduino es bastante mala, pero para aplicaciones simples, funciona bien. TODO lenguaje de programación tiene algún tipo de función willekeurig, dado que esta función es fundamentele para muchos aspectos de cálculo, simulaciones y desarrollo de hardware y software nl algemene.
Para hacer un caminador Directorio debemos mantener seguroparagraaf posiciones x, y de varias "partículas", y para eso usamos dos pakket, posX []-posY [y], para guardar x, y respectively. Estas coordenadas las vamos cambiando por cada ciclo lus del Aduino, y vamos dibujando un círculo utilizando estas posiciones.
Veamos varias cosas del código. De las líneas 2 a la 4, se cargan las librerías que vamos een utilizar para la pantalla OLED. Pueden ir een este instructable para la explicación de estas librerías y su utilización.
Nl las líneas 6 a 8, creamos dos pakket de enteros:
const int num = 10; int posX[num] ; int posY[num];
VEAN que la primera linea de ese código utilizamos "const" esto lo que indica es que la variabele num, es una constante, es decir que neen cambiará su valor nl ninguna parte del proagrama. Si geen le agregan "const", les daría el siguiente fout:
IntroC_For:7: error: array bound is not an integer constant before ']' token int posX[num];
Esto es porque este tipo de pakket zoon estáticos, es decir, se construyen y el micro-controlador asigna de inmediato el espacio de memoria y geen se puede cambiar su tamaño nl ningun momento despues de creados. "num" debe ser necesariamente una constante, y por eso esto se corrige indicando que es una constante agregando "const" al inicio de la declaración.
Los pakket posX [num] y posY [num], almacenan valores de tipo entero, y como definicmos num que zee igual a 10, entonces, habrá 10 "gavetas" nl cada arreglo.
Nl la función Setup, las líneas 16 a 19, inicializamos cada variabele nl el arreglo, para colocarlos nl el centro de la pantalla,
for (int i = 0; i < num; i++) { posX[i] = 64; posY[i] = 32; }
Whinose utilizamos el ciclo voor, para ir por cada elemento del arreglo y asignarle el valor inicial del centro de pantalla nl posición x, y. Noten como el iterador ikse gebruikt para indicar que elemento del arreglo vamos een asignar, y el ciclo se Charge de cambiar ik, desde 0 een 5.
Nl la sección loop,
for (int i = 0; i < num; i++) { posX[i] = constrain(posX[i] + random(-3, 3),1,127); posY[i] = constrain(posY[i] + random(-3, 3),1,63); display.fillCircle(posX[i], posY[i], 1, WHITE); display.display(); }
Volvemos een utilizar VN ciclo voor, para cambiar los valores de posición x, y. nl la línea,
posX[i] = constrain(posX[i] + random(-3, 3),1,127);
Se utilizan varias cosas. Veamoslo de adentro is afuera. Lo primero es la función random(-3,3). Esta función lo que hace es generar VN número Directorio entre -3 y 3. Una vez creado el número, esta se la sumamos a la posX [i], que era la posición nl la que estaba antes. Luego utilizamos la función beperken (posX [i] + willekeurige (-3, 3), 1, 127);, esta lo que hace es asegurar que el cualquiera que sea el resultado, este nunca zee menos que 1 o burgemeester que 127. Pueden ver su uso nl la referencia de Arduino. Hacemos lo mismo con posY [i].
Una vez re-calculada la nueva posición, dibujamos un círculo condisplay.fillCircle (posX [i], posY [i], 1 wit), y luego actualizamos el weergave con display.display();
Eso es todo. Ahora verlo funcionando.