domingo, 23 de agosto de 2015

Sensor Infrarrojo TCRT5000

Sensor Infrarrojo TCRT5000

tcrt5000_1
Detección                  : 2 – 12 mm
longitud de onda     : 950nm
Método de sensado : Reflectivo
Voltaje inverso         : 5V
 VCEO                        : 70V max
Corriente máxima   : 100 mA 
Voltaje LED              : 1.25 V 

Descripción del Producto


El TCRT5000 es un sensor óptico reflexivo que consta de un emisor de luz infrarroja y un fototransistor. El fototransistor detecta la luz que es reflejada cuando un objeto pasa enfrente del sensor. El TCRT5000 dispone de un encapsulado que bloquea la luz , la carcasa de plástico cuenta con 2 sujetadores en forma de clip para que su montaje sea mas sencillo.
Es utilizado comúnmente en aplicaciones como seguidores de linea, en aplicaciones de alineamiento, etc.
La forma mas tipica de conectarlo es a traves de una resistencia de 220 ohms con 5 volts de alimentación en el emisor y una resistencia de 10k ohms en el fototransistor a tierra como se muestra en las imagenes.

martes, 16 de junio de 2015

ERROR 997 - Picdem FS USB

Al voler usar el programa PDFSUSB de Microchip per grabar un chip per USB m'he trobat amb aquest missatge d'error 
"USB Write Failed error 997: Se está ejecutando la operacion de E/S superpuesta"


Despres de molt cercar per internet sense cap resultat he trobat a la pagina de Microchip  http://www.microchip.com/forums/m304787.aspx   una explicació de la possible causa de l'error.

Entrar a "Administracion de equipos" (botó dret a MiPC -> Administrar)
Buscar la línia on esta el dispositiu.

Doble clic al dispositiu (en aquest cas un PIC18F4550)
Anar al TAB "Administracion de energia" i treure el tic (deixar-lo en blanc)


Amb aixó hauria de funcional la grabació del PIC per USB.

martes, 20 de enero de 2015

Arduino Display LCD + KeyPad Shield



PinFunction
Analog 0Button (select, up, right, down and left)
Digital 4DB4
Digital 5DB5
Digital 6DB6
Digital 7DB7
Digital 8RS (Data or Signal Display Selection)
Digital 9Enable
Digital 10Backlit Control

Example Code




 
//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

/*******************************************************

This program will test the LCD panel and the buttons
Mark Bramwell, July 2010
Josep Crehuet, 20.01.2015
********************************************************/

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor 
 //
 Serial.println(adc_key_in);      // See the button values
 // 
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // 
 if (adc_key_in < 50)   return btnRIGHT;  
 if (adc_key_in < 150)  return btnUP; 
 if (adc_key_in < 350)  return btnDOWN; 
 if (adc_key_in < 550)  return btnLEFT; 
 if (adc_key_in < 750)  return btnSELECT;  

 return btnNONE;  // when all others fail, return this...
}

void setup()
{
 Serial.begin(9600);
 lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("Push any button"); // print a simple message
}
 
void loop()
{
 lcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over
 lcd.print(millis()/1000);      // display seconds elapsed since power-up


 lcd.setCursor(0,1);            // move to the begining of the second line
 lcd_key = read_LCD_buttons();  // read the buttons

 switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
     {
     lcd.print("RIGHT ");
     break;
     }
   case btnLEFT:
     {
     lcd.print("LEFT   ");
     break;
     }
   case btnUP:
     {
     lcd.print("UP    ");
     break;
     }
   case btnDOWN:
     {
     lcd.print("DOWN  ");
     break;
     }
   case btnSELECT:
     {
     lcd.print("SELECT");
     break;
     }
     case btnNONE:
     {
     lcd.print("NONE  ");
     break;
     }
 }

}