ArmandoCircuitos
Inicio
Electronica
Programacion
Resultado
Codigo
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Semaforo_UART_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SolidBrush brocha1, brocha2, brocha3; byte cnt = 1; byte[] buffer = { 36 }; private void Form1_Load(object sender, EventArgs e) { serialPort1.Open(); serialPort1.Write(buffer, 0, 1); } private void panel1_Paint(object sender, PaintEventArgs e) { if (cnt >= 1 && cnt <= 5) brocha3 = new SolidBrush(Color.Green); else brocha3 = new SolidBrush(Color.Gray); if (cnt >= 6 && cnt <= 7) brocha2 = new SolidBrush(Color.Yellow); else brocha2 = new SolidBrush(Color.Gray); if (cnt >= 8) brocha1 = new SolidBrush(Color.Red); else brocha1 = new SolidBrush(Color.Gray); Graphics luces = e.Graphics; luces.FillEllipse(brocha1, 20, 20, 60, 60); luces.FillEllipse(brocha2, 20, 100, 60, 60); luces.FillEllipse(brocha3, 20, 180, 60, 60); } private void timer1_Tick(object sender, EventArgs e) { panel1.Invalidate(); panel2.Invalidate(); if (cnt >= 1 && cnt <= 4) buffer[0] = 36; if (cnt >= 5 && cnt <= 6) buffer[0] = 34; if (cnt >= 7 && cnt <= 11) buffer[0] = 129; if (cnt >= 12) buffer[0] = 65; if (cnt == 14) buffer[0] = 36; serialPort1.Write(buffer, 0, 1); cnt++; if (cnt > 14) cnt = 1; } private void panel2_Paint(object sender, PaintEventArgs e) { if (cnt >= 1 && cnt <= 7) brocha1 = new SolidBrush(Color.Red); else brocha1 = new SolidBrush(Color.Gray); if (cnt >= 8 && cnt <= 12) brocha3 = new SolidBrush(Color.Green); else brocha3 = new SolidBrush(Color.Gray); if (cnt >= 13) brocha2 = new SolidBrush(Color.Yellow); else brocha2 = new SolidBrush(Color.Gray); Graphics luces = e.Graphics; luces.FillEllipse(brocha1, 20, 20, 60, 60); luces.FillEllipse(brocha2, 20, 100, 60, 60); luces.FillEllipse(brocha3, 20, 180, 60, 60); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { buffer[0] = 0; serialPort1.Write(buffer, 0, 1); serialPort1.Close(); } } }
Descarga del archivo
Descargar archivo