Wikipedia

Résultats de recherche

dimanche 6 septembre 2015

ADC pic 16F887


Code :

unsigned int temp_res;

void main() {
  ANSEL  = 0x04;              // Configure AN2 pin as analog
  ANSELH = 0;                 // Configure other AN pins as digital I/O
  C1ON_bit = 0;               // Disable comparators
  C2ON_bit = 0;
  
  TRISA  = 0xFF;              // PORTA is input
  TRISC  = 0;                 // PORTC is output
  TRISB  = 0;                 // PORTB is output

  do {
    temp_res = ADC_Read(2);   // Get 10-bit results of AD conversion
    PORTB = temp_res;         // Send lower 8 bits to PORTB
    PORTC = temp_res >> 8;    // Send 2 most significant bits to RC1, RC0
  } while(1);
}

samedi 5 septembre 2015

MCP4921 12 bit DAC interfacing with PIC16F877

MCP4921 12 bit DAC interfacing with PIC16F877 microcontroller via SPI Connectivity

 In this tutorial project we will see how we generate triangular Wave using MCP4921 12 bit DAC.  As we know that MCP4921 is a 12 bit DAC.
Code:
sbit Chip_Select at RC0_bit;
sbit Chip_Select_Direction at TRISC0_bit;
void main() {
int value,h_b,l_b;
float num=0;
while(1)
{
for(num=0;num<=5;)
{
SPI1_Init();
//SPI
Chip_Select_Direction = 0; // Set CS# pin as Output
value=num/0.001220703125;
value=value|3 << 12; h_b=(value>>8)& 255;
l_b=value & 255;
Chip_Select = 0;
SPI1_Write(h_b);
SPI1_Write(l_b);
Chip_Select = 1;
num=num+.1;
}
if(num==5)
{
for(num=5;num>=0;)
{
num=num-.1;
SPI1_Init();
//SPI
Chip_Select_Direction = 0; // Set CS# pin as Output
value=num/0.001220703125;
value=value|3 << 12; h_b=(value>>8)& 255;
l_b=value & 255;
Chip_Select = 0;
SPI1_Write(h_b);
SPI1_Write(l_b);
Chip_Select = 1;
}
}
}
}

Arduino et lm35


Ce tutoriel montre un moyen intéressant de lire la température de l'environnement avec l'Arduino, et le montre sur un écran LCD de 16x2 (en degrés Fahrenheit), en utilisant certains éléments de sa programmation et le capteur de LM35 de température.
Pour cela, il faudra les composants suivants:
- 1 Arduino
- Affichage 16x2 1 LCD
- Une 10K potentiomètre
- Capteur de température LM35 1
- Cavaliers pour la connexion
Ce capteur capte la température externe et la convertit en une valeur de tension correspondante. Dans ce circuit, nous nous connectons la sortie Vo du capteur à la broche A0 de l'Arduino, qui le convertit en un flotteur valeur de la température, et ensuite, il présente sur l'écran LCD. Le potentiomètre 10K ajuste le contraste de l'affichage.
Code arduino:
#include <LiquidCrystal.h> 
#define    capteur     0  
int Vin; // Variable pour lire la valeur de la broche de l'Arduino
flotter Température; // Variable qui reçoit la valeur de tension convertie à la température
flotter TF; // Variable devant recevoir la valeur convertie de ºC à ºF 
Lcd LiquidCrystal (12, 11, 5, 4, 3, 2); 
/ * La fonction ci-dessus déclare que les broches Arduino seront utilisés pour contrôler l'écran LCD * /
void setup ()
{
  lcd.begin (16, 2); // Il raconte l'Arduino que l'affichage est un type de 16x2
  lcd.print ("Température:"); // Envoyer le texte à l'écran de l'écran.
}
void loop ()
{
  Vin = analogRead (capteur); 
  Température = (500 * Vin) / 1023; 
 TF = ((9 * Température) / 5) 32; // Convertit ºC à ºF
  lcd.setCursor (0, 1); // Déplace le curseur de l'écran à la ligne suivante
  lcd.print (TF); // Présente la valeur de la température sur l'affichage
  lcd.print («F»); // Écrit "F" pour indiquer qu'il est en échelle Fahrenheit.
  delay(1000); // Attend une seconde à lire à nouveau la broche
}

Maison intelligente


Ce projet consiste à concevoir un système domotique  permettant de contrôler les appareils d'une maison tels que les lumières, le chauffage et la ventilation.

Commande moteur pas à pas

Le circuit intégré L293D est muni de 16 pins, qui seront branchées de la façon indiquée sur le dessin ci-dessous. 

Code Arduino Ici



vendredi 4 septembre 2015

PIC16F877A ADC Configuration

Now, onto the configuration of the ADC. There are only FOUR registers that you need to understand to configure the ADC. They are ADCON0, ADCON1, ADRESH and ADRESL. The two most important ones are ADCON0 and ADCON1. ADRESH and ADRESL are just the registers where the ADC stores the result of the conversion.

ADCON0




The user has to select the correct clock conversion. The period must be at least more than 1.6us to obtain an accurate conversion. For example, I’m using a 4MHz crystal oscillator on my PIC16F877A. So if I select Fosc/2, thats 2MHz and the period is just 500ns and it’s far less than the 1.6us required.

Système de cloche école automatique

schematic

Ce projet est un système de cloche école automatique. Un tel système déclenche une cloche (ou exploite toute autre charge) au moment prédéfinie. Dans cette version quelques fonctionnalités avancées sont introduites:
  • 16 x 2 LCD Display (Affiche la date, l'heure et jour)
  • 4 × 4 Clavier pour les entrées
  • Un produit autonome (pas de PC nécessaire pour programmer ou de maintenir le calendrier de sonnerie)
  • Aucune batterie nécessaire pour maintenir le calendrier d'horloge et la sonnerie
  • Temps de sonnerie variable
  • Max 10 cloches peuvent être réglés
  • Filtres personnalisés Week-End
  • OFF mensuel / OFF hebdomadaire
  • Demi journée
  • Manipulation totale d'alimentation secteur: 1000W (240V 5A)
  • Connectez autant de cloches électroniques AC en forme parallèle
  • Built-in de sauvegarde alimentation de la batterie
  • Construit dans la mémoire permanente pour les timings de cloche
  • Auto Scan-mémoire au démarrage du système
Je l'habitude PIC18F4520 microcontrôleur comme le cerveau du système. RTC1307 IC est utilisé pour maintenir l'horloge, la date et le jour avec une batterie de tension de sauvegarde de 3V. Timings de Bell sont stockés dans la mémoire EEPROM interne du MCU.
photo_1_th