Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Basic
Categora: Arduino ltima actualizacin: Jueves, 15 Octubre 2015 Escrito por Jos Luis
Bejarano
0 Comments
En esta oportunidad vamos a realizar un proyecto de un detector de colores con Arduino,
conectado a Visual Basic Net para mostrar en pantalla un cuadrado con el color del objeto
que se le acerca al sensor.
Lista de materiales:
- (1) tarjeta Arduino cualquier modelo.
- (1) Sensor CNY70.
- (1) Resistencia de 220.
- (1) Resistencia de 22K.
- Cables de conexin.
El CNY70 es un sensor ptico reflexivo con salida a transistor de corto alcance, el cual
consta de un emisor y receptor ambos en el mismo encapsulado apuntando en la misma
direccin, y funciona gracias a la capacidad de reflexin del objeto y la deteccin del rayo
reflejado por el receptor.
Es muy utilizado en los robots seguidores de lneas para detectar las lneas de color negro
sobre un fondo blanco, ya que segn el circuito cuando el objeto es de color blanco refleja
la luz proveniente del emisor y entra en conduccin, en cambio, si el objeto es de color
negro, este no refleja la luz y el transistor no conduce. Si el objeto es de color blanco,
refleja la luz y el transistor pasa a estado de conduccin.
El sensor CNY70 puede ser conectado al Arduino como entrada digital o como entrada
anloga. En el modo digital solamente se tendr un nivel lgico bajo o un nivel lgico alto
presente en su salida. En este proyecto lo conectaremos a la entrada anloga del Arduino;
de esta manera, dependiendo del color del objeto, este reflejara cierta cantidad de luz y se
tendr en la entrada del Arduino valores de 0 a 1023 los cuales variaran sensiblemente en
funcin de la distancia a la que se encuentre el objeto al sensor, y del material del objeto.
Por ejemplo, si se acerca un objeto de color rojo a una distancia de 5mm del sensor, puede
tener una lectura anloga de 820, si se modifica la distancia del mismo objeto a 8mm, esta
puede variar a 870 por poner un ejemplo. Por lo tanto, es recomendable que se mentenga
siempre la misma distancia entre el objeto y el sensor CNY70.
El siguiente es el diagrama esquemtico, se observa que es muy sencillo de realizar,
solamente usaremos un pin del Arduino, el marcado como A3.
void setup()
{
pinMode(sensor,INPUT);
Serial.begin(9600);
}
void loop()
{
//Leo el estado del sensor
estado = analogRead(sensor);
Serial.println(estado);
delay(200);
}
El cdigo en Visual Basic Net es el siguiente:
Public Class Form1
Dim Ndato As String
Dim numero As Int32
Private Sub Serial_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles Serial.DataReceived
'Leo los 3 primeros caracteres del dato recibido por el puerto
serie
dato = Microsoft.VisualBasic.Left(Serial.ReadLine, 3)
numero = CInt(dato)
If numero >= 975 Then
pct.BackColor = Color.Yellow
ElseIf numero >= 920 And numero <= 960 <Then
pct.BackColor = Color.Blue
ElseIf numero >= 860 And numero <= 880 Then
pct.BackColor = Color.Red
ElseIf numero >= 750 And numero <= 860 Then
pct.BackColor = Color.Red
ElseIf numero > 510 And numero <= 580 Then
pct.BackColor = Color.Green
ElseIf numero >= 240 And numero <= 260 Then
pct.BackColor = Color.Black
Else
pct.BackColor = Color.White
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Serial.Open()
End Sub
End Class