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:
Nombres | Abreviaciones | Significado |
---|---|---|
Asignación | x = y | x = y |
Asignación de adicción | x += y | x = x + y |
Asignación de sustracción | x -= y | x = x - y |
Asignación de multiplicación | x *= y | x = x * y |
Asignación de división | x /= y | x = x / y |
Asignación de Resto | x %= y | x = x % y |
Asignación de exponenciación | x **= y | x = x ** y |
Asignación de desplazamiento a la izquierda | x <<= y | x = x << y |
Asignación de desplazamiento a la derecha | x >>= y | x = x >> y |
Asignación sin signo de desplazamiento a la derecha | x >>>= y | x = x >>> y |
Asignacion AND | x &= y | x = x & y |
Asignacion XOR | x ^= y | x = x ^ y |
Asignacion OR | x |= y | x = x | y |
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.
Operador | Condición de prueba | Ejemplos |
---|---|---|
= (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 x
es 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.
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 .
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:
- PHP 7.4.0 alpha 2Released (s.f) Operadores de asignación. Recuperado de:https://www.php.net/manual/es/language.operators.assignment.php
- JavaScript(s.f) Operadores de asignación. Recuperado de:https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/Assignment_Operators
- Microsoft Docs. (19/07/2015) Operadores de comparación. Recuperado de: https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/comparison-operators
- Guillermo Pérez (22 de abril del 2015) Tutorial: Entradas Analógicas y Digitales. Recuperado de:https://openwebinars.net/blog/tutorial-arduino-entradas-analogicas-y-digitales/