Documente Academic
Documente Profesional
Documente Cultură
RGB
Alumnos:
Contenido
INTRODUCCIN
1.
Objetivos de la practica
2.
Cdigo en arduino
4.
Estructura en Proteus
11
5.
11
6.
12
7.
16
8.
Conclusiones
17
Introduccin
Lo que pretendemos hacer con el siguiente montaje es no slo encender un
LED-RGB mediante Arduino (con la consecuente obligacin de acudir al
cdigo cada vez que se desee un nuevo color) sino de cambiar tambin el
color del LED utilizando los diferentes valores que nos da cada potencimetro.
As pues, y una vez montado, slo tendremos que girar en un sentido o en otro
los distintos potencimetros para obtener las diferentes mezclas de colores
que nos ofrecen este tipo de LEDs. Empecemos pues:
Lo que vamos a necesitar:
-
Protoboard.
LED-RGB -
6 Cables hembra-macho.
Tan slo una ltima aclaracin para que nadie se sienta perdido. Los colores
estn comprendidos entre los valores 0 255 siendo 0 apagado y 255 el color
a la mxima intensidad. Los valores 0 1032 hacen referencia a lo que
Arduino lee de los potencimetros. Esta seal siempre est comprendida entre
0 -1032 independientemente de la resistencia del potencimetro.
1. Objetivos de la practica
3.
4. Estructura en Proteus
Option Strict On
Imports System.IO
Module MODULE1
Public Contador As Integer = 0
Sub RecuperarMatriz(ByVal nombrearchivo As String, ByRef A(,) As Integer,
ByVal nf As Integer, ByVal nc As Integer)
Dim srLector As StreamReader
srLector = New StreamReader(nombrearchivo)
Dim fila As Integer, col As Integer
Dim cadena As String = ""
Dim subcadena As String
Dim pos As Integer = 0
Dim inicio As Integer = 1
For fila = 0 To nf - 1
cadena = srLector.ReadLine()
cadena = cadena & Chr(9)
inicio = 1
For col = 0 To nc - 1
pos = InStr(inicio, cadena, Chr(9))
subcadena = Mid(cadena, inicio, pos - inicio)
A(fila, col) = CInt(Val(subcadena))
inicio = pos + 1
Next
Next
Console.WriteLine("Archivo leido satisfactoriamente")
srLector.Close()
End Sub
End Module
CODIGO DEL FORMULARIO
Imports System.Drawing
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
Const maxfilas As Integer = 50
Const maxcol As Integer = 3
Public Nf As Integer = 32
Public Nc As Integer = 3
Public A(maxfilas, 3) As Integer
Dim cont As Integer = 0
Public NombreArchivo As String = "E:\datos\RGB32.txt"
Shared _continue As Boolean
Shared _serialPort As SerialPort
Public Rojo As Integer = 255
Public Verde As Integer = 255
Public Azul As Integer = 10
Public CadRojo As String
Public CadVerde As String
Public CadAzul As String
Public Velocidad As Integer = 500
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "COM4" ' Cambia elbli Puerto
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
CheckForIllegalCrossThreadCalls = False ' Esta lnea no le gusta mucho
a los
BtnCerrar.Enabled = False
BtnAbrir.Enabled = True
txtMensaje.Text = Velocidad
txtRojo.Text = Rojo
txtVerde.Text = Verde
txtAzul.Text = Azul
txtVelocidad.Text = Velocidad
CadRojo = txtVerde.Text
CadAzul = txtAzul.Text
End Sub
Private Sub BtnCerrar_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles BtnCerrar.Click
SerialPort1.Close()
BtnCerrar.Enabled = False
BtnAbrir.Enabled = True
End Sub
Private Sub btnListar_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles BtnListar.Click
For Each sp As String In My.Computer.Ports.SerialPortNames
ListBox1.Items.Add(sp)
Next
End Sub
Private Sub btnAbrir_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles BtnAbrir.Click
Try
BtnAbrir.Enabled = False
BtnCerrar.Enabled = True
Catch ex As Exception
MsgBox(ex.Message)
End Try
SerialPort1.Open()
End Sub
Private Sub BtnEnviarRGB(ByVal sender As Object, ByVal e As EventArgs)
Handles BtnRojo.Click
CadRojo = "R" & txtRojo.Text
Rojo = Val(txtRojo.Text)
btnMRojo.BackColor = Color.FromArgb(Rojo, 0, 0)
btnMResultado.BackColor = Color.FromArgb(Rojo, Verde, Azul)
SerialPort1.Write(CadRojo)
End Sub
Private Sub btnVerde_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnVerde.Click
CadVerde = "V" & txtVerde.Text
Verde = Val(txtVerde.Text)
btnMVerde.BackColor = Color.FromArgb(0, Verde, 0)
btnMResultado.BackColor = Color.FromArgb(Rojo, Verde, Azul)
SerialPort1.Write(CadVerde)
End Sub
Private Sub BtnAzul_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnAzul.Click
CadAzul = "A" & txtAzul.Text
Azul = Val(txtAzul.Text)
btnMAzul.BackColor = Color.FromArgb(0, 0, Azul)
btnMResultado.BackColor = Color.FromArgb(Rojo, Verde, Azul)
SerialPort1.Write(CadAzul)
End Sub
Private Sub btnDetener_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles btnDetener.Click
Timer1.Stop()
End Sub
8. Conclusiones
Empleando el software Proteus se pudo simular el funcionamiento del
encendido y cambio color de luz de un foco RGB modificando los nmeros del
0 al 255