Skip to content

Instantly share code, notes, and snippets.

@maditnerd
Created March 23, 2013 16:28
Show Gist options
  • Save maditnerd/5228316 to your computer and use it in GitHub Desktop.
Save maditnerd/5228316 to your computer and use it in GitHub Desktop.
/*
emetteur.c
Ce programme permet de controler des prises SCS
Copyright (c) 2013 Sarrailh Remi
Ce programme est sous licence GPLv3 pour plus de detail:
http://www.gnu.org/licenses/gpl.html
Vous devez installer WiringPi avant pour cela tapez ces commandes:
-------------------------------------------------------------------
wget -O wiringpi_install smarturl.it/wiringpi
chmod wiringpi_install
./wiringpi_install
Pour compiler le code voici la commande:
-----------------------------------------
gcc -o emetteur emetteur.c -I/usr/local/include -L/usr/local/lib -lwiringPi
*/
#include <stdio.h>
#include <string.h>
#include <wiringPi.h>
/* Configuration ----------------------------------------------------*/
int transmetteur = 7; //GPIO du transmetteur
int repetition_total = 10; //Repetition de l'envoi du code
int delaiParBinaire = 550; //Delai en millisecondes par binaire
int delaiParCode = 10; //Delai en millisecondes par code
/*------------------------------------------------------------------*/
//Variable
int repetition_code;
int repetition_binaire;
char code[79]; // Taille du code
char list_code[79][79]; // liste des codes a appeller
// Prototype des fonctions
void SendCode(char* code);
int main(int argc, char **argv)
{
// Active la gestion des GPIO
if(wiringPiSetupGpio() == -1)
{
printf("Impossible d'activer les gpios!");
}
//Met le transmetteur en OUTPUT
pinMode (transmetteur,OUTPUT);
strcpy(code,"0001001001001101001101001101001101001101001101001101001001001101001001101001000");
//Envoi le message
SendCode(code);
digitalWrite(transmetteur,0);
}
//
// Envoie le code
//
void SendCode(char* code)
{
//Repetition du code entier
for (repetition_code = 1; repetition_code <= repetition_total ; repetition_code++)
{
//Repetition par chiffre binaire
for (repetition_binaire = 0 ; repetition_binaire <= 79 ; repetition_binaire++)
{
if (code[repetition_binaire] == '1')
{
digitalWrite(transmetteur,1);
}
else
{
digitalWrite(transmetteur,0);
}
delayMicroseconds(delaiParBinaire);
}
delay(delaiParCode);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment