Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo General
▪
Utilizar el entornode desarrollo en línea de Autodesk Tinkercad.
Objetivos Específicos.
▪
Usar Tinkercad para armar circuitos.
▪
Usar Tinkercad para desarrollo de sketch.
▪
Usar un entorno de desarrollo en línea para verificar el funcionamiento de circuitos.
Materiales y equipos.
▪
1 Computadora con Arduino IDE instalado y acceso a Internet.
Introducción Teórica.
Tinkercad.
Tinkercad es una aplicación gratuita en línea de diseño e impresión 3D, desarrollada por
Autodesk, la cual permite realizar simulaciones en tiempo real, programación de dispositivos
Arduino virtuales, los sketch se pueden elaborar utilizando texto o bloques (de forma similar
a la aplicación Scratch), también es una herramienta que permite exportar el circuito a
diagrama de pistas (PCB) el cual es compatible con Eagle (también propiedad de Autodesk).
Declaración de variables1.
a) Enteros (int):
Se usa para el almacenamiento de números. En el Arduino Uno (y otras placas basadas en
ATmega), un int almacena un valor de 16 bits (2 bytes). Lo que significa un rango de valores
de -32,768 a 32,767 (valor mínimo de -2 ^ 15 y un valor máximo de (2 ^ 15) - 1). En las
placas basadas en Arduino Due y SAMD (como MKR1000 y Zero), un int almacena un valor
de 32 bits (4 bytes). Un rango de -2,147,483,648 a 2,147,483,647 (valor mínimo de -2 ^ 31
y un valor máximo de (2 ^ 31) - 1).
1
Toda la sintaxis para el desarrollo de sketch puede ser encontrada en:
https://www.arduino.cc/reference/en/#variables
Int almacena números negativos por medio de complemento A2. El bit más alto, a veces
denominado bit de "signo", señala si el número es negativo. El resto de los bits se invierten
y se agrega 1.
Por ejemplo si queremos controlar un circuito con display de cátodo común como el de la
figura 1, podrían crearse los siguientes arreglos, donde la primera y segunda líneas de código
hacen referencia a los pines que serán utilizados como entradas y salidas de la tarjeta Arduino
uno, el último indica un arreglo de doble dimensión que contiene las combinaciones de
valores lógicos a escribir en el display para formar los números 0, 1, 2 y 3.
GND
R1
2.2k Q1
Q1
DISP1 DISP2
R2 2N3439 Gnd Gnd
2.2k Q2
Q2
2N3439
abcdefg. abcdefg.
R3
1k
a
b
R4
c 1k
d
e
f
g
DP
La inicialización ocurre primero y exactamente una vez. Cada vez que pasa el ciclo, la
condición se prueba; si es verdadero, el bloque de instrucciones y el incremento se ejecuta,
entonces la condición se prueba nuevamente. Cuando la condición se vuelve falsa, el ciclo
finaliza.
10. Para agregar los componentes de la sección derecha ComponentsBasic, utilice la barra
de desplazamiento lateral y baje hasta lograr ver Breadboard Small.
11. Dé clic izquierdo sobre el componente a agregar y luego un clic izquierdo sobre el área
de trabajo (izquierda de Components Basic y debajo de los botones Rotate, Delete, Undo
e icon-redo), ver figura 5.
Área de trabajo.
13. Dé clic izquierdo sobre un resistor, se desplegará el cuadro de diálogo que le permitirá
modificar el valor y nombre del componente.
14. Asigne a seis resistencias el valor de 330Ω.
Notas:
▪
Si necesita mover un componente, dé clic izquierdo sobre él y arrástrelo hasta la posición
donde lo necesita mover.
▪
Moviendo el scroll del mouse puede ajustar el tamaño del circuito a su elección.
▪
Si la barra de componentes desaparece, dé clic izquierdo sobre el botón +Components.
▪
Colocando el puntero del mouse sobre los pines del componente, despliega texto que define
el nombre del pin señalado.
16. Se comenzará a cablear la parte de alimentación entre los extremos superior e inferior
de la breadboard.
17. Ubique el puntero del mouse sobre un punto de la breadboard donde desea colocar un
cable.
18. Dé un clic izquierdo sobre el punto de interés (inicio).
19. Mueva el mouse hasta la posición donde desee finalizar la conexión del cable y dé clic
izquierdo sobre ese punto.
20. Aparecerá un cuadro de diálogo que le permitirá cambiar el color al cable.
21. Al dar doble clic izquierdo sobre una sección del conductor, aparecerán puntos de anclaje
sobre el punto donde se ha hecho doble clic izquierdo, que permiten modificar la
trayectoria del conductor, ver figura 11.
22. A mayor cantidad de veces que haga el procedimiento anterior tendrá más posibilidades
de darle al conductor una trayectoria preferida.
23. Si desea eliminar un punto de anclaje selecciónelo y presione el botón suprimir.
24. Otra forma de realizar el cableado es ir dando clic izquierdo, sobre el área de trabajo
definiendo la trayectoria deseada.
Figura 11: Trayectoria del cableado definida por el usuario.
25. Realice las conexiones del circuito de tal manera que se vea como en la figura 12.
26. Dé clic izquierdo en el botón del Code editor, podrá ver que por defecto
tiene pre-guardado el código del ejemplo Blink visto en la práctica anterior, borre el
contenido y digite el código 1 de esta guía (también puede copiarlo y pegarlo).
int valor = 0;
int retardo = 500;
int entradas[] = {8, 9}; //Entradas de DIP switch
int salidas[] = {2, 3, 4, 5, 6, 7}; //Salidas a display
void setup()
{
for(int i=0; i<8; i++){
pinMode(salidas[i], OUTPUT);
if (i<2){
pinMode(entradas[i], INPUT);
}
}
Apagar();
}
void loop()
{
if(digitalRead(entradas[0])){
valor = 1;
}
else{
valor = 0;
}
if(digitalRead(entradas[1])){
valor = valor + 2;
}
else{
valor = valor + 0;
}
digitalWrite(salidas[0], HIGH);
delay(retardo);
digitalWrite(salidas[0], LOW);
digitalWrite(salidas[1], HIGH);
delay(retardo);
}
elseif(valor == 1){ //Enciende leds de izquierda a derecha
Apagar();
digitalWrite(salidas[5], HIGH);
delay(retardo);
digitalWrite(salidas[5], LOW);
digitalWrite(salidas[4], HIGH);
delay(retardo);
}
elseif(valor == 2){ //Enciende leds del centro a los extremos
Apagar();
digitalWrite(salidas[2], HIGH);
digitalWrite(salidas[3], HIGH);
delay(retardo);
digitalWrite(salidas[2], LOW);
digitalWrite(salidas[3], LOW);
digitalWrite(salidas[1], HIGH);
digitalWrite(salidas[4], HIGH);
delay(retardo);
}
else{ //Enciende leds de los extremos al centro Apagar();
digitalWrite(salidas[0], HIGH);
digitalWrite(salidas[5], HIGH);
delay(retardo);
digitalWrite(salidas[0], LOW);
digitalWrite(salidas[5], LOW);
digitalWrite(salidas[1], HIGH);
digitalWrite(salidas[4], HIGH);
delay(retardo);
}
}
void Apagar(){
for(int i=0; i<8; i++){
digitalWrite(salidas[i], LOW);
}
}
Código 1: Sketch que realiza utiliza el concepto de registros de desplazamiento.
33. Dé clic izquierdo en el botón Circuit View (el botón se encuentra a la izquierda del
botón Component List) para volver a la vista del circuito y código.
34. Modifique el código 1, para que realice la operación propuesta en los comentarios de
los bucles if - else.
35. Dé clic en el icono de TINKERCAD de la esquina superior izquierda y cree un nuevo
circuito, tal como el propuesto en la figura 14.
36. Modifique el código 2 (no funciona como se encuentra), para generar un decodificador
de 7 segmentos para 4 bits de entrada, debe cumplir con la tabla 1. Considere que debe
utilizar bucles for y uso de arreglos para tomar como válido la ejecución de este
ejercicio.
Figura 14: Circuito propuesto para el código 2.
int valor = 0;
int entradas[] = {2, 3, 4, 5}; //Entradas de DIP switch
int salidas[] = {6, 7, 8, 9, 10, 11, 12, 13}; //Salidas a display
void setup() {
for (int i = 0; i < 8; i++) { //Inicializa las
salidas digitalWrite(salidas[i], LOW);
}
}
void loop() {
//la variable valor representa un número de 0 a
15 //tomado de la lectura de las entradas
valor = digitalRead(entradas[0]);
valor = valor + (digitalRead(entradas[1])*2);
valor = valor + (digitalRead(entradas[2])*4);
valor = valor + (digitalRead(entradas[3])*8);
delay(100);
}
Código 2: Parte del Sketch del decodificador de binario (4 bits) a siete segmentos.
40. Desarrolle el código 4, se deberá leer una entrada análoga, dependiendo del valor leído
se deberá mostrar en los display’s un valor decimal entre 0 a 99.
Notas para tomar como válido la ejecución de este ejercicio:
▪
Lectura de variable análoga.
▪
Uso de la función map (deberá investigar su funcionamiento).
▪
Separar las decenas de unidades para su respectiva escritura en displays.
▪
Considere que debe utilizar bucles if, for, uso de arreglos.
▪
Se debe alternar la escritura de los displays para dar el efecto que ambos están
encendidos al mismo tiempo, los manejadores de los displays son los pines 12 y 13.
42. Les aparecerá una ventana en la que debe presionar el botón Invite people.
49. En la ventana desplegada seleccione la opción public para el archivo, con lo cual
cualquier persona en el Internet podrá encontrar su archivo por medio del nombre o
enlace.
50. Desplácese sobre la ventana hasta la parte inferior y dé clic izquierdo en el botón
Guardar cambios.
Figura 21: Generación de enlaces para compartir trabajos de Tinkercad.
51. Notará que el archivo ahora es de uso público, dé clic izquierdo al centro de la imagen
del archivo en el navegador web.
52. Desplácese a la parte inferior hasta que encuentre la dirección del vínculo a ser
compartido.
53. Copiar la dirección web del archivo y comparta el archivo de Tinkercad tal como se
sugirió en el paso 44 de esta guía.
54. El archivo puede volverse privado si usted así lo desea pero hará que el enlace
desaparezca de la ventana mostrada en la figura 23.
Figura 23: Generación de enlaces para compartir trabajos de Tinkercad.
55. Cierre la ventana de la figura 23, en el navegador web dé un clic izquierdo sobre la x de
la esquina superior derecha.
56. Se cargará su perfil de TINKERCAD, dé clic izquierdo en la esquina superior derecha
sobre la imagen de su perfil, luego dé clic izquierdo en Cerrar sesión.
Actividad complementaria.
Utilizando su cuenta en Tinkercad, realice la simulación para los ejercicios solicitados a
continuación:
1. Utilice el circuito desarrollado en la figura 16, realice el Sketch, dependiendo de la lectura
analógica modifique el valor de retardo de tiempo (entre 250 y 2500) que define cada
cuanto cambia un contador ascendente de 0 a 99.
2. Implemente en físico el ejercicio anterior, puede utilizar las tarjetas de display’s
desarrolladas en el Instituto de Investigación e Innovación en Electrónica, ver figura 25.
Bibliografía.
Enlaces electrónicos:
▪
https://botscience.wordpress.com/2012/06/05/historia-de-arduino-y-su-nacimiento/
▪
https://vimeo.com/18390711
▪
Sitio web de los desarrolladores: www.arduino.cc
▪
Referencia en línea del lenguaje: http://arduino.cc/en/Reference/HomePage
▪
https://www.tinkercad.com
Anexos.
GND
CC1
CC2
A
B
C
D
E
F
G
PD
Figura 25: Tarjeta de circuito impreso de doble display.