transmission_433mhz
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| transmission_433mhz [2018/04/30 09:12] – [Achat] 88.164.131.165 | transmission_433mhz [2018/05/01 16:21] (Version actuelle) – [Si4432] 88.164.131.165 | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| {{:: | {{:: | ||
| + | ==== Schema Arduino ==== | ||
| + | {{:: | ||
| + | |||
| + | [[https:// | ||
| ==== Introduction ==== | ==== Introduction ==== | ||
| Il s'agit d'un module RF paramétrable qui peut être utilisé pour différent types de protocoles de communication. | Il s'agit d'un module RF paramétrable qui peut être utilisé pour différent types de protocoles de communication. | ||
| Ligne 43: | Ligne 47: | ||
| * Cliquer sur Reinstall Driver | * Cliquer sur Reinstall Driver | ||
| - | {{:: | + | {{:: |
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | * Démarrer SDRSharp | ||
| + | * Dans source RTL-SDR (USB) | ||
| + | * Dans configuration, | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | * Cliquer sur le bouton play | ||
| + | |||
| + | Exemple d' | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | * Enregistrement des données transmises par la télécommande | ||
| + | |||
| + | Dans le menu Recording cliquer sur le bouton record puis appuyer sur le bouton de votre télécommande. | ||
| + | SDRSharp | ||
| + | |||
| + | {{: | ||
| + | |||
| + | SDRSharp va créer un fichier audio dans son répertoire : | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | Il est possible d' | ||
| + | |||
| + | * Ouvrir le fichier avec Wavosaur | ||
| + | |||
| + | Trames reçues : | ||
| + | {{:: | ||
| + | |||
| + | Détail d'une trame : | ||
| + | {{:: | ||
| + | |||
| + | Décodage d'une trame OOK : | ||
| + | {{:: | ||
| + | |||
| + | Mesure des temps : | ||
| + | |||
| + | Sélectionner la partie de trame à mesurer puis faire un clic droit et propriétés. | ||
| + | Wavosaur indique que la fréquence échantillonnage est de 2 400 000 Hz et que 3253 échantillons sont sélectionnés. La période est donc de 1/ | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | ===== Reproduction du code ===== | ||
| + | |||
| + | Une fois que le code lu, vous pouvez utiliser le code ci dessous pour le revoyer facilement vers un transmetteur 433Mhz. | ||
| + | |||
| + | Indiquer les temps en micro seconde à l' | ||
| + | <code csharp> | ||
| + | unsigned int TimeHighLevelHigh = 1088; | ||
| + | unsigned int TimeLowLevelHigh = 272; | ||
| + | unsigned int TimeHighLevelLow = 408; | ||
| + | unsigned int TimeLowLevelLow = 952; | ||
| + | </ | ||
| + | |||
| + | <code csharp |main.ino> | ||
| + | #include " | ||
| + | |||
| + | RfManager rfManager = RfManager(); | ||
| + | |||
| + | unsigned char code[] = { 1, | ||
| + | |||
| + | void setup() { | ||
| + | |||
| + | rfManager.setTransmitPin(4); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | |||
| + | if (digitalRead(6) == 0) | ||
| + | { | ||
| + | rfManager.send(code, | ||
| + | //Attend 10 ms | ||
| + | delay(10); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | <code csharp |RfManager.cpp> | ||
| + | #include " | ||
| + | |||
| + | unsigned char TransmitPin = 0; | ||
| + | |||
| + | unsigned int TimeHighLevelHigh = 1088; | ||
| + | unsigned int TimeLowLevelHigh = 272; | ||
| + | unsigned int TimeHighLevelLow = 408; | ||
| + | unsigned int TimeLowLevelLow = 952; | ||
| + | |||
| + | RfManager:: | ||
| + | |||
| + | } | ||
| + | |||
| + | void RfManager:: | ||
| + | { | ||
| + | for (int i = 0; i <length; i++) { | ||
| + | if (code[i] == 1) | ||
| + | transmit(1); | ||
| + | else | ||
| + | transmit(0); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void RfManager:: | ||
| + | { | ||
| + | TransmitPin = pin; | ||
| + | pinMode(TransmitPin, | ||
| + | } | ||
| + | |||
| + | void RfManager:: | ||
| + | |||
| + | if (bit == 1) | ||
| + | { | ||
| + | digitalWrite(TransmitPin, | ||
| + | delayMicroseconds(TimeHighLevelHigh); | ||
| + | digitalWrite(TransmitPin, | ||
| + | delayMicroseconds(TimeLowLevelHigh); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | digitalWrite(TransmitPin, | ||
| + | delayMicroseconds(TimeHighLevelLow); | ||
| + | digitalWrite(TransmitPin, | ||
| + | delayMicroseconds(TimeLowLevelLow); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <code csharp |RfManager.h> | ||
| + | #ifndef _RfManager_h | ||
| + | #define _RfManager_h | ||
| + | |||
| + | #if defined(ARDUINO) && ARDUINO >= 100 | ||
| + | #include " | ||
| + | #endif | ||
| + | |||
| + | #include < | ||
| + | |||
| + | class RfManager { | ||
| + | |||
| + | public: | ||
| + | RfManager(); | ||
| + | void send(unsigned char* code, unsigned int length); | ||
| + | void setTransmitPin(unsigned char pin); | ||
| + | |||
| + | private: | ||
| + | void transmit(unsigned char bit); | ||
| + | }; | ||
| + | |||
| + | #endif | ||
| + | </ | ||
| + | |||
| + | Résultat sur la sortie de l' | ||
| + | {{:: | ||
transmission_433mhz.1525072366.txt.gz · Dernière modification : 2018/04/30 09:12 de 88.164.131.165
