Articles for febrero 2013

Sumador con pic16f84a de 2 números de 4 bits

Introducción

La práctica es construir un sumador con pic16f84a, el cual consiste en la creación de un circuito que sume 2 números de 4 bits y mostrar el número resultante en 5 bits. El trabajo fue realizado en un circuito de prueba armado en un protoboard, usando un PIC16F84A para realizar los procesos, 5 leds para mostrar la salida y un dipswitch de 8 switches como valores de entrada (4 y 4).

Desarrollo

La idea del programa del sumador con pic16f84a  es sumar 2 números de 4 bits, esos 2 números los tomaríamos del PORTB el cual dispone de 8, los 4 bits menos significativos para un numero (a), y los 4 restantes para el otro (b).

 

dipswitch

 

El número más grande que puede ser formado por 4 bits es 15, por lo tanto el conjunto de valores que podrían dar como resultado de la suma son números del 0 al 30. Y el  número más grande representable con los 5 bits del PORTA es 31, por lo tanto PORTA puede representar el número sumado máximo posible. Cabe mencionar que los bits más significativos tienen que recorrerse ya que si ejemplificamos un 1 realmente el valor es el del bit4 osea 16 en decimal. por lo tanto tiene que realizarse un corrimiento de estos bits hacia lo menos significativo.

Temporizador con Timer0 – TMR0

En este tema hablaremos sobre el Temporizador con Timer0, que constantemente se utiliza en la realización de proyectos. Es sumamente importante conocer la formula, ya que muchas veces la muestran en los blogs pero no especifican bien como salen los números que muestran, Aquí en tallerdecontrol.com  especificaremos cada uno de los parámetros de la formula del Temporizador con Timer0.

El tiempo deseado en una temporización se calcular a partir de un ciclo de instrucción, este puede variar dependiendo del Cristal con el que está trabajando nuestro Micro, ya sea de 4Mhz el TX, el tiempo de ejecución de cada instrucción es de 1 microsegundo para instrucciones sin salto.

Es necesario elegir también el valor del Divisor de Frecuencia o mejor llamado Prescaler (con los Bit’s PS2, PS1 y PS0). La ecuación que nos da la hoja de datos de los micros es la siguiente…

Temporización = (4 * (255-TMR0) * PreScaler)/Fosc 

Temporización: es el tiempo que deseamos configurar nuestro Timer. Hay que tener en cuenta las limitantes de nuestro micro. Ya que muchas veces hemos deseado hacer un timer de 1 Segundo y esto no es posible.

TMR0: es el valor con el cual empezara a contar nuestro TIMER, por ejemplo si lo iniciamos a  200 solamente se ejecutará 56 veces ya que al llegar al 256  se sobrecarga y se reinicializa a 0.

255: es el complemento, como se explicó en el punto anterior, el valor del TIMER depende de la resta con 255, porque solamente tomará valores de 0 a 255, porque nuestro ancho del TMR0 es de 8bits. Este punto es muy importante, este número de 255 no es para todos los micros, si el TMR de nuestro Micro es de 16 bits como en el caso del PIC18F4550 entonces puede sobrepasar el valor de 255 nuestro complemento es de 65535.

Hello World – con Retardos

Introducción

Esta es la segunda práctica llamada Hello World realizada en mikroC. Consiste en hacer parpadear un Led, con un retardo de 1 segundo de apagado y encendido.

Para empezar debemos de tener instalado en nuestra PC el software de MikroC. Una vez instalado, procedemos a crear un nuevo proyecto.

Nos vamos a Project / New Project.  Vea en la imagen donde se procede.

proyectoMicroC

Luego nos aparecerá otra ventana donde configuramos la ruta de nuestro proyecto (donde queda guardado y banderas) y creamos carpeta llamada Hello World, y el nombramos el proyecto como Hello World.

6 PRACTICA-1 “HOLA MUNDO”

La primera práctica consiste en prender y apagar un Led, esta práctica para cualquier tipo de microcontrolador se le conoce como el “Hola Mundo”.

La secuencia para programar un Microcontrolador es la siguiente:

1.1.  Primeramente se adjuntan las librerías a usar, se declaran las variables globales, constantes y/o prototipos (funciones), esto se agrega antes de la estructura “setup(){——-}”.

1.2.  Después se configuran los periféricos (esto se agrega en la estructura “setup(){—–}”). En esta práctica utilizaremos un Bit del Arduino, este bit es el “Pin 13”, lo utilizaremos ya que el Arduino tiene un LED(un foquito) en este Bit. Configurar el bit digital, significa que lo vamos a poner como de Entrada o de Salida, en este ejemplo, vamos a ordenarle prender y apagar un bit, por lo tanto se configura de salida.

1.3.  Posteriormente se hará uso de los periféricos y se programará una rutina en la estructura “Loop()”.

1.4.  Nomenclatura de colores, para diferenciar lo que está escrito en los ejemplos:

  • Color Azul.- “Código del programa”.
  • Color Naranja.- “Comentarios”.

Hello World – PIC16F84A

Introducción

Hello World – PIC16F84A, es el primer paso para introducirnos a cualquier microcontrolador o lenguaje de programación.

Esta es la primera práctica realizada en cualquier lenguaje de programación ya que se considera la más básica, esta vez realizada en mikroC. Lo que se podrá aprender en el siguiente ejemplo, es como leer el estado de un botón conectado al PIC y tomar una decisión de prender o apagar un LED.

Para empezar debemos de tener instalado en nuestra PC el software de MikroC. Una vez instalado, procedemos a crear un nuevo proyecto.

Nos vamos a Project / New Project.  Vea en la imagen donde se procede.

proyectoMicroC

Luego nos aparecerá otra ventana donde configuramos la ruta de nuestro proyecto (donde queda guardado y banderas).

configurandobits

 

  1. Elegimos el nombre de nuestro proyecto.
  2. La ruta donde queremos alojar nuestro proyecto.
  3. En DEVICE elegimos el PIC16F84A.
  4. A la velocidad que trabaja nuestro Cristal en este caso a 4Mhz. Ya que nos puede facilitar en pantalla con un debbuger.
  5. Elegimos las banderas de inicio de nuestro PIC16F84A.  WDT ( Watch Dog Time) se inhabilita ya que nuestro programa se esta ciclando. Y este nos ayuda a que se resetie cuando este cree que se CICLO.
  6. Por último OK

 

Curso de Arduino

Curso de Arduino

Bienvenidos al Mundo de Arduino

Facultad de Informática de Mazatlán

Ing. José Alfonso Brito Rojas

 

Contenido

1       INTRODUCCIÓN.. 3

2       ARDUINO.. 7

3       BOOTLOADER. 9

3.1         Ventajas. 9

3.2         Funcionamiento. 9

4       INSTALEMOS EL ARDUINO EN LA PC. 10

5       EL AMBIENTE DE DESARROLLO DE ARDUINO.. 13

5.1         LENGUAJE DE REFERENCIA.. 14

5.2         LIBRERIAS INCLUIDAS EN LA PLATAFORMA.. 16

5.3         ESTRUCTURAS. 16

5.4         ESTRUCTURA BASICA DE UN PROGRAMA EN ARDUINO.. 17

6       PRACTICA-1  “HOLA MUNDO”. 18

6.1         PROGRAMA.. 18

7       PRACTICA-2  “HOLA MUNDO 2”. 19

7.1         PROGRAMA: 20

8       PRACTICA-3  SECUENCIA DE LUCES IDA Y VUELTA. 21

8.1         PROGRAMA.. 21

9       PRACTICA-4  ON_OFF DE LED DESDE LA PC. 23

9.1         PROGRAMA EN ARDUINO (FIRMWARE). 23

9.2         PROGRAMA EN VISUAL C#. 24

10          PRACTICA-5 CONTROL DESDE LA PC DE 8 LEDS. 26

10.1      PROGRAMA EN ARDUINO (FIRMWARE). 26

10.2      PROGRAMA EN VISUAL C#. 27

11          REFERENCIAS. 32

1     INTRODUCCIÓN

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino(basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

pic16f84 y Motor a pasos

Practica de pluma con PIC16F84

Introducción

Practica Entrada a un estacionamiento con motor a pasos y pic16f84a

La practica consiste en simular el funcionamiento del control del acceso de un estacionamiento. Utilizando un motor a pasos, simularemos la pluma de la entrada a un estacionamiento. El circuito fue armado en un protoboard, usando un PIC16F84A, 1 led normal y un led infrarrojo,  1 fototransistor, 2 pushbutton y un motor a  pasos  para simular la pluma.

Desarrollo

Para desarrollar esta práctica se tiene que saber primero ¿qué es un motor a paso y cómo funciona?, al igual que también hay que saber ¿Cómo funciona un foto-transistor? Ya hecha la investigación se encontró que:
-Un motor a paso es un dispositivo que avanza paso por paso mediante un pulso electromagnético y entre ellos existen diferentes medidas en los pasos a dar y se utilizó uno de 7.5° ó 48 pasos para dar una vuelta entera.
Para hacer la práctica tenemos que saber ¿Cómo es que va avanzando paso por paso el motor? y se usaron como ejemplo las variables A, B, C y D, para tener una idea:
D C B A arreglo
0 0 0 1 1
0 0 1 1 3
0 0 1 0 2
0 1 1 0 6
0 1 0 0 4
1 1 0 0 12
1 0 0 0 8
1 0 0 1 9

Este arreglo es el utilizado, ya que un motor a pasos cuando llega al final empieza a avanzar en el espacio que este más cercano y que sea 0.
Un foto-transistor, mientras tenga reciba luz el circuito se cierra y manda un 0 a RA0 de lo contrario, si se interrumpe manda un 1 a RA0 y el circuito se abre.
Ya con esta información para hacer la práctica se tiene que armar el circuito en el protoboard.

Practica de pluma con PIC16F84

El programa debía funcionar como funciona el programa de control de un estacionamiento, el funcionamiento de este es:

-Detecta el automóvil con un sensor

-Imprime el ticket

-Espera a que recojan el ticket

-Cuando el ticket es removido  sube la pluma

-Espera a que el automóvil avanze

-Cuando  el sensor deja de detectar el automóvil espera 3 segundos

-Baja la pluma

-Regresa al estado inicial

Voltímetro con Arduino y C#

Elaboración de un Voltímetro:

Alumno:

Franco González juan Ignacio

Planteamiento del problema:

La idea de crear un voltímetro, surge de la necesidad de tener un circuito capaz de medir el voltaje que se recibe entre un rango de valores de 0 a 50v utilizando Arduino y C#.

Introducción:

Para empezar con el desarrollo del dispositivo, es necesario primeramente definir lo que es un voltímetro: instrumento que sirve para medir la diferencia de potencial entre dos puntos de un circuito eléctrico.

Teniendo esa definición podemos decir que crearemos un dispositivo capaz de medir el voltaje de una fuente de poder cualquiera en un rango de 0 a 50v e inclusive poder apreciar la oscilación entre sus valores si es que la hubiera.

El circuito que utilizaremos para poder hacer nuestro voltímetro es el siguiente:

resistencias-voltimetro

 

En esta imagen, se aprecia que se necesitaran dos resistencias: un potenciómetro, que ayudara como resistencia de 9 kΩ ya que funcionara como una resistencia variable, que al momento de realizarlo en físico, se tendrá que ajustar para que de la cantidad ya mencionada, además utilizar una de 1 kΩ para completar el circuito, no sin antes poner entre medio de ambas un cable directo a la placa de arduino que ira directamente al puerto 3 del análogo, que programaremos para poder medir la señal de la fuente de poder que ira conectada directamente al potenciómetro y no olvidarse de poner la tierra del otro lado saliendo de la resistencia de 1 kΩ para completar nuestro circuito.

Con estas especificaciones, ya podemos pasar a la fase de desarrollo.

Desarrollo: 

Para empezar a  poder desarrollar nuestro voltímetro utilizando Arduino y C#, primeramente hay que realizar una práctica donde se aplicaran los mismos principios y poder hacer algunas pruebas del funcionamiento; utilizar un potenciómetro como fuente a medir y una serie de 10 leds que prenderán o apagaran según vayan variando los datos que sean leídos por el arduino desde el potenciómetro, para esta primera práctica, se desarrollo el siguiente código para nuestra plataforma arduino:

Ejemplo 4.- Etiquetas, hojas de estilo y AJAX

Crear un archivo php llamado “ejemplo4”.

  1.- Se usarán distintas etiquetas, como caja de textos, botones,         listas, tablas.

  2.- Se creará una hoja de estilos “CSS” y se aplicará el estilo a las         etiquetas usadas.

  3.-Aplicaremos AJAX  para futuras validaciones.

 

NOTA.- Les pido disculpas por que WordPress me modifica el contenido al insertarlo. Les dejo el enlace para que puedan descargar los archivos. Gracias

<html>
<head>
<link rel=”stylesheet” type=”text/css” href=”hoja_estilo.css”/>   //  Manda a llamar la hoja de estilos la cual le dará formato a los objetos
<script type=”text/javascript” src=”jquery.js”></script>   //Manda a llamar “jquery.js” para hacer uso de funciones de AJAX ya predeterminadas
</head>
<body>
<h1>Encabezado</h1>
<input type=”button” value=”Aceptar” />
<p>Esto es un Parrafo.</p>
Nombre: <input type=”text” id=”nombre” name=”nombre”/>
<br>
Apellido: <input type=”text” id=”apellido” name=”apellido”/>
<ol>
<li><a href=”arduinoserver.php” id=”link1″>Primer Elemento</a></li>
<li>Segundo Elemento</li>
<li>Tercer Elemento</li>
</ol>
<table>
<tr>
<td>Celda 1</td>
<td>Celda 2</td>
<td>Celda 3</td>
</tr>
<tr>
<td>Celda 4</td>
<td>Celda 5</td>
<td>Celda 6</td>
</tr>
<tr>
<td>Celda 7</td>
<td>Celda 8</td>
<td>Celda 9</td>
</tr>
</table>
</body>
<script type=”text/javascript”>
// var nombre=” Jose Alfonso Brito Rojas”;
//var nombre=prompt(“Cual es tu nombre?????”);
// alert(“Bienvenido “+nombre);
$(document).ready(function(){
$(“.lista”).mouseleave(function(){
alert(“Haz un click en ‘lista'”);
click($(“#link”).valueOf());
});
});
$(“#apellido”).focus(function(){
if ($(“#nombre”).val()==””) alert(“El nombre esta vacio”);}
);
</script>
</html>–>

Ejemplo 3.- Crear Clases y llamarlas

1.- Crear un archivo php llamado “funciones-class”.

<?php

    class funciones{

        private $num1;

        private $num2;

        public function __construct($fnum1, $fnum2){

            $this->num1=$fnum1;

            $this->num2=$fnum2;

        }

         public function suma(){

            return $this->num1+$this->num2;

        }

        public function resta(){

            return $this->num1-$this->num2;

        }

        public function mult(){

            return $this->num1*$this->num2;

        }

        public function div(){

            return $this->num1/$this->num2;

        }

    }

?>

2.- Crear un archivo php llamado “ejemplo3-class”.

<?php

    include_once ‘funciones-class.php’; //se incluye la libreria donde esta la clase

    $funciones = new funciones(1,2);  // Se declara un nuevo objeto insertando los datos que deseamos procesar.

    echo ‘1+2= ‘.$funciones->suma();

    echo ‘<br>’;

    echo ‘1-2= ‘.$funciones->resta();

    echo ‘<br>’;

    echo ‘1*2= ‘.$funciones->mult();

    echo ‘<br>’;

    echo ‘1/2= ‘.$funciones->div();

?>

Php-Ajax-Mysql