sábado, 29 de junio de 2019

UNIDAD #2: Práctica Arduino PULSADOR+LED

Descripción de la actividad: 

En la clase del 27 de junio, en informática, se nos dio la consigna de realizar la 3ra práctica con arduino, que cosiste en escender un led empleando un pulsador, se le dará instrucciones al led para escenderse o apagarse sugún el uso del pulsador, esto mediante la programación también aprendida en clase.

Foto de la conexión:

Programación:

void setup() { 
  // configurar valores de entradas y salidas 
 pinMode(A0,INPUT)
 pinMode(2,OUTPUT)
 pinMode(3,OUTPUT)
}
void loop() {
  int fotocelda= analogRed(A0);
  if(fotocelda<50)
{
   digitalWrite(2,HIGH);
   digitalWrite(3,HIGH)
 }
 else
 {digitalWrite(2,LOW);
  digitalWrite(3,LOW);
}

Conclusiones:

Aprendí más acerca de la función de los diferentes componentes electrónicos y como programarlos para que realicen la instrucción dada por nsootros, además de que podremos emplear este método para nuetra casa domótica.

Dificultades:

La falta de el componente pulsador dificultó al concluir conel proceso ya realizado, por eso lo traeré la próxima clase y así terminar definitivamente con la práctica.

¿Qué me pregunto?

¿El espacio de la base de la maqueta no será muy reducido para el empleamiento de todas estas conexiones?


Investigación solicitada:

Operadores de asignación: El operador básico de asignación es "=". Se podría inclinar a pensar primero que es como un "igual a". No lo es. Realmente significa que el operando de la izquierda se establece con el valor de la expresión de la derecha (es decir, "se define como").El otro operador de asignacion son usualmente son abreviaciones para operaciones estandar, como se muestra en las siguientes definiciones y ejemplos.
NombresAbreviacionesSignificado
Asignaciónx = yx = y
Asignación de adicciónx += yx = x + y
Asignación de sustracciónx -= yx = x - y
Asignación de multiplicaciónx *= yx = x * y
Asignación de divisiónx /= yx = x / y
Asignación de Restox %= yx = x % y
Asignación de exponenciaciónx **= yx = x ** y
Asignación de desplazamiento a la izquierdax <<= yx = x << y
Asignación de desplazamiento a la derechax >>= yx = x >> y
Asignación sin signo de desplazamiento a la derechax >>>= yx = x >>> y
Asignacion ANDx &= yx = x & y
Asignacion XORx ^= yx = x ^ y
Asignacion ORx |= yx = x | y
Operadores de comparación: Operadores de comparación comparan dos expresiones y devuelven un Boolean valor que representa la relación de los valores. Existen operadores para comparar valores numéricos, operadores para comparar cadenas y operadores para comparar objetos. Los tres tipos de operadores se describen a continuación.

Comparar valores numéricos

Visual Basic compara valores numéricos con seis operadores de comparación numérica. Cada operador toma como operandos dos expresiones que se evalúan como valores numéricos. En la tabla siguiente se enumera los operadores y se muestra ejemplos de cada uno.
OperadorCondición de pruebaEjemplos
= (Igualdad)¿Es el valor de la primera expresión igual al valor del segundo?23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Desigualdad)¿No es igual al valor de la segunda el valor de la primera expresión?23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Menor que)¿Es el valor de la primera expresión menor que el valor del segundo?23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Mayor que)¿El valor de la primera expresión es mayor que el valor del segundo?23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Menor o igual que)¿Es el valor de la primera expresión menor o igual que el valor del segundo?23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Mayor o igual que)¿Es el valor de la primera expresión mayor o igual que el valor del segundo?23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Comparar cadenas

Visual Basic compara cadenas mediante la Like (operador) , así como los operadores de comparación numérica. El Like operador permite especificar un patrón. La cadena, a continuación, se compara con el patrón, y si coincide, el resultado es True. De lo contrario, el resultado es False.Los operadores numéricos permiten comparar String valores según su criterio de ordenación, como se muestra en el ejemplo siguiente.
"73" < "9"
' The result of the preceding comparison is True.
El resultado en el ejemplo anterior es True porque el primer carácter de la primera cadena que se ordena delante del primer carácter en la segunda cadena. Si los primeros caracteres sean iguales, la comparación podría seguir al carácter siguiente en las dos cadenas y así sucesivamente. También puede comprobar la igualdad de cadenas con el operador de igualdad, como se muestra en el ejemplo siguiente.
"734" = "734"
' The result of the preceding comparison is True.
Si una cadena es un prefijo de otra, como "aa" y "aaa", la cadena más larga se considera que es mayor que la cadena más corta. Esto se ilustra en el siguiente ejemplo:
"aaa" > "aa"
' The result of the preceding comparison is True.
El criterio de ordenación se basa en una comparación binaria o una comparación textual según la configuración de Option Compare. Para obtener más información, consulte instrucción Option Compare.

Comparar objetos

Visual Basic compara dos variables de referencia de objeto con el operador Is y IsNot (operador).Puede usar cualquiera de estos operadores para determinar si dos variables de referencia que hacen referencia a la misma instancia de objeto. Esto se ilustra en el siguiente ejemplo:
VB
Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If
En el ejemplo anterior, x Is y se evalúa como True, ya que ambas variables hacen referencia a la misma instancia. Compare este resultado con el siguiente ejemplo.
VB
Dim x As New customer()
Dim y As New customer()
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If
En el ejemplo anterior, x Is y se evalúa como False, porque aunque las variables hacen referencia a objetos del mismo tipo, hacen referencia a distintas instancias de ese tipo.
Cuando desea probar dos objetos no está señalando a la misma instancia, el IsNot operador le permite evitar una combinación gramaticalmente torpe de Not y Is. Esto se ilustra en el siguiente ejemplo:
VB
Dim a As New classA()
Dim b As New classB()
If a IsNot b Then
    ' Insert code to run if a and b point to different instances.
End If
En el ejemplo anterior, If a IsNot b es equivalente a If Not a Is b.

Comparación de tipo de objeto

Puede probar si un objeto es de un tipo determinado con el TypeOf... Is expresión. La sintaxis es la siguiente:
TypeOf <objectexpression> Is <typename>
Cuando typename especifica un tipo de interfaz, el TypeOf... Is expresión devuelve True si el objeto implementa el tipo de interfaz. Cuando typename es un tipo de clase, la expresión devuelve True si el objeto es una instancia de la clase especificada o de una clase que derive de la clase especificada.Esto se ilustra en el siguiente ejemplo:
VB
Dim x As System.Windows.Forms.Button
x = New System.Windows.Forms.Button()
If TypeOf x Is System.Windows.Forms.Control Then
    ' Insert code to run if x is of type System.Windows.Forms.Control.
End If
En el ejemplo anterior, el TypeOf x Is Control expresión se evalúa como True porque el tipo de xes Button, que hereda de Control.


Diferencias entre pines digitales y analógicos de Arduino: Nuestro Arduino no sólo puede enviar señales sino que también puede recibirlas con dos propósitos principales como son leer datos de sensores y recibir mensajes de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas las clasificaremos en analógicas y digitales.
Entradas Analógicas: Son las correspondientes a los pines de A0 a A5. Se caracterizan por leer valores de tensión de 0 a 5 Voltios con una resolución de 1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser capaz de detectar variaciones en el nivel de la señal de entrada de casi 5 mV.
Imagen 0 en Tutorial Arduino: Entradas Analógicas y Digitales

Para hacer la lectura de uno de estos pines escribiremos en nuestro código
lectura = analogRead(pinentrada);
“lectura” lo sustituimos por el nombre de la variable donde queramos almacenar el valor leído y en “pinentrada” tendremos que poner el número del pin analógico que hemos elegido (0,1,...5) o el nombre de la variable que almacena dicho número.
Esta función nos devolverá un valor que va de 0 a 1023 en proporción al nivel de la señal de entrada. Para una entrada nula obtendremos el valor 0, para una entrada de 2.5 Voltios 511 (la mitad de 1023) y para 5 Voltios 1023.
Entradas Digitales: Son las mismas que las salidas digitales, es decir, los pines que van del 1 al 13. Se diferencian de las analógicas porque éstas son capaces de “entender” sólo dos niveles de señal, LOW o valores cercanos a 0 V y HIGH o valores cercanos a 5 V. Puede parecer una desventaja pero en realidad puede ser todo lo contrario. Y no sólo porque a veces únicamente necesitemos saber dos estados (interruptor, pulsador, sensor de presencia, final de carrera....) sino porque así es capaz de leer señales de pulsos digitales. Esto significa que puede comunicarse .
Imagen 1 en Tutorial Arduino: Entradas Analógicas y Digitales

Por poner un ejemplo, un sensor analógico de temperatura como es el LM35 incrementaría el nivel de la tensión que llega a la placa de forma proporcional a la temperatura. Sin embargo, uno digital como el ds18b20 lo que haría es cambiar la sucesión de pulsos y por tanto el mensaje que contiene el valor de la temperatura.
Aunque los pines digitales por defecto vienen configurados como entradas, si queremos hacerlo manualmente escribimos en nuestro código
pinMode(pinentrada,INPUT);
Para almacenar los dos valores posibles LOW o HIGH en una variable llamada “lectura” escribimos
lectura = digitalRead(pinentrada);


Bibliografía: