domingo, 16 de septiembre de 2018

Partes del entorno de programación de Arduino

Software Arduino IDE

¿Para qué se utiliza la función Void Setup?
Aquí es donde establecemos algunos criterios que requieren una ejecución única. 
Por ejemplo, si nuestro programa va a usar comunicación serial, en el setup establecemos el comando Serial.begin para indicarle al programa que vamos a iniciar la comunicación serial.

¿Para qué se utiliza la función Void Loop?
La función loop en Arduino es la que se ejecuta un número infinito de veces. Al encenderse el Arduino se ejecuta el código del setup y luego se entra al loop, el cual se repite de forma indefinida hasta que se apague o se reinicie el microcontrolador.

void loop en Arduino

Vemos que se empieza a imprimir una y otra vez la secuencia 1, 2, 3… Así sucederá con todo lo que coloquemos en el loop.

¿Qué es una sintaxis? y ¿Cuales son?
En el siguiente vídeo podrá encontrar una breve explicación de sintaxis en el software Arduino IDE y los tipos que existen.



¿Qué son variables/constantes?

Una variable es un lugar donde almacenar un dato, tiene un nombre, un valor y un tipo.
Los nombres de variables pueden tener letras, números y el símbolo ’_’. Deben empezar por una letra (pueden empezar por ’_ ’ pero no es recomendable pues es el criterio que usan las rutinas de la biblioteca).

Una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. Por ejemplo el valor de PI = 3.1416.



Variables constantes:
INPUT:
Los pines del Arduino (ATmega) configurados como INPUT con pinMode() se dice que estan en un estado de alta-impedancia . Pines configurados como INPUT hacen muy poca demanda en el circuito en el que se usan, equivalente a una resistencia en serie de 100 Megohms en frente del pin. Esto los hace utiles para leer un sensor.

OUTPUT:
Pines configurados como OUTPUT con pinMode() se dice que estan en un estado de baja-impedancia. Esto significa que pueden proveer una substancial cantidad de corriente a otros circuitos.Los pins del ATmega pueden originar (proveer corriente) o consumir (absorver corriente) hasta 40 mA (milliamps) de corriente hacia otros dispositivos/circuitos. Esto los hace utiles para dar enegia a LEDs porque los LEDs tipicamente usan menos de 40 mA. Cargas mayores a 40 mA (por ejem. motores) necesitaran un transistor u otro circuito de interfaz.

Los pines configurados como salidas se pueden dañar o destruir si son conectados a tierra o el canal positivo de energia.

HIGH:
El significado de HIGH (en referencia a un pin) es un poco diferente dependiendo si el pin esta configurado como INPUT(de entrada) o OUTPUT(de salida). Cuando un pin esta configurado como INPUT con pinMode(), y leido con digitalRead(), el Arduino (ATmega) reportara HIGH si:
  • un voltaje mayor a 3 voltios esta presente en el pin (tarjetas de 5V)
  • un voltaje mayor a 2 voltios esta presente en el pin (tarjetas de 3.3V)
Un pin tambien puede ser configurado como INPUT con pinMode(), y subsecuentemente puesto a HIGH con digitalWrite(). Esto habilitara los resistores internos de acoplamineto a positivo de 20K, que pondran el pin de entrada a HIGH a menos que sea bajado a LOW por el circuito externo. Asi es como el INPUT_PULLUP funciona y se describe en detalle mas abajo.
Cuando un pin esta configurado como OUTPUT con pinMode(), y puesto a HIGH con digitalWrite(), el pin esta a:
  • 5 voltios (tarjetas de 5V)
  • 3.3 voltios (tarjetas de 3.3V)
En este estado puede ser fuente de corriente, por ejemplo, encender un LED que esta conectado a tierra mediante una resistencia en serie.

LOW:

El significado de LOW tambien tiene puede ser diferente dependiendo si el pin esta puesto a INPUT o OUTPUT. cuando un pin es configurado como INPUTcon pinMode(), y leido con digitalRead(), el Arduino (ATmega) reportara LOW si:
  • un voltaje menor que 3 voltios esta presente en el pin (tarjetas de 5V)
  • un voltaje menor que 2 voltios esta presente en el pin (tarjetas de 3.3V)

Cuando un pin esta configurado como OUTPUT con pinMode(), y puesto a LOW con digitalWrite(), el pin esta a 0 voltios (tarjetas de 5V o de 3.3V). En este estado puede drenar corriente, por ejemplo, encender un LED que esta conectado a +5 voltios (o +3.3 voltios) mediante un resistor en serie.

true: comunmente se define como 1, lo cual es correcto, pero true tiene una definicion mas amplia. Cual quier entero que no es cero es true, en el sentido Booleano. Asi que -1, 2 y -200 son todos definidos como true, tambien, en un sentido Booleano.

Toma nota de que las constantes true y false se escriben con minusculas al contrario que HIGHLOWINPUT, y OUTPUT.

false:false (falso) es el mas facil de definir de los dos. false se define como 0 (cero).

https://www.arduino.cc/reference/es/language/variables/constants/constants/

Tipos de variables:
Boolean: Solo almacena uno de dos valores que puede ser Verdadero o Falso. La variable de tipo boolean ocupa un byte en espacio de memoria.

Char: Se usa para almacenar el valor de un carácter. Ejemplo A = 65. Ocupa un byte en espacio de memoria (-128 a 127 en tabla acii).

Byte: Almacenan el valor en 8 bits con números naturales que representan en valores binarios.  Ejemplo: 18 = 00010010.

Int:  Indica que la función va a retornar un tipo de dato entero (la suma de dos números).

Float: Almacena Números con decimales. (-3.4028235E+43 a 3.4028235E+43a ) con una precisión de 7 decimales.

String:

string – char Array 
Arduino = [A,r,d,u,i,n,o] 

String – objet 

Arduino =  Arduino. 

¿Qué es una función?


Una función es un grupo de instrucciones con un objetivo particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente).
Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y puede entregar un resultado.
Una función tiene un nombre y un conjunto de instrucciones que son ejecutadas cuando se llama a la función. Son funciones setup() y loop() de las que ya se ha hablado anteriormente.

Las funciones de usuario pueden ser escritas para realizar tareas repetitivas y para reducir el tamaño de un programa. Segmentar el código en funciones permite crear piezas de código que hacen una determinada tarea y volver al área del código desde la que han sido llamadas.
FUNCIONES
Digitales:
  •  Función pinMode(pin, mode)

Función usada en la function setup() para configurar un pin dado para comportarse como INPUT o OUTPUT. Ej. pinMode(pin, OUTPUT); configura el pin número 'pin' como de salida. Los pines de Arduino funcionan por defecto como entradas, de forma que no necesitan declararse explícitamente como entradas empleando pinMode().
  •  Función digitalRead(pin)

Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El pin puede ser especificado con una variable o una constante (0-13). Ej. v = digitalRead(Pin);
  •  Funcion digitalWrite(pin, value)

Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital especificado. De nuevo, el pin puede ser especificado con una variable o una constante 0-13. Ej. digitalWrite(pin, HIGH);
Analógicas:
  •  Función analogRead(pin)

Lee el valor desde el pin analógico especificado con una resolución de 10 bits. Esta función solo funciona en los pines analógicos (0-5). El valor resultante es un entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no necesitan declararse previamente como INPUT o OUTPUT.
  • Función analogWrite(pin, value)

Escribe un valor pseudo-analógico usando modulación por ancho de pulso (PWM) en un pin de salida marcado como PWM. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Ej analogWrite(pin, v); // escribe 'v' en el 'pin' analógico. Puede especificarse un valor de 0 - 255. Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor sea el valor, más a menudo el pin se encuentra en HIGH (5 V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la mitad del tiempo y 5 V la otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.

Retardos (pausa):

  • delay(ms). Realiza una pausa en el programa la cantidad de tiempo en mili segundos especificada en el parámetro (máximo 1000, mínimo 1).

  • Comunicación:
    • Serial.begin(rate). Abre un Puerto serie y especifica la velocidad de transmisión. La velocidad típica para comunicación con el ordenador es de 9600 aunque se pueden soportar otras velocidades.
    • Serial.println(data). Imprime datos al puerto serie seguido por un retorno de línea automático. Este comando tiene la misma forma que Serial.print() pero este último sin el salto de línea al final. Este comando puede emplearse para realizar la depuración de programas. Para ello puede mandarse mensajes de depuración y valores de variables por el puerto serie. Posteriormente, desde el entorno de programación de Arduino, activando el "Serial Monitor" se puede observar el contenido del puerto serie, y, por lo tanto, los mensajes de depuración. Para observar correctamente el contenido del puerto serie se debe tener en cuenta que el "Serial Monitor" y el puerto serie han de estar configurados a la misma velocidad (Para configurar la velocidad del puerto serie se hará con el comando Serial.begin(rate)).

    https://aprendiendoarduino.wordpress.com/tag/funciones/
    http://dfists.ua.es/~jpomares/arduino/page_02.htm

    No hay comentarios:

    Publicar un comentario