Hello,
peut-on faire un Reset de la carte par un canal dmx comme sur les asservis ?
bises
reset via DMX
Re: reset via DMX
tu peux tenter d'utiliser la fonction
Cela ne redémarre pas physiquement la carte mais redémarre le programme en passant par le setup, donc réinitialise les variables.
Pour un hard reset, le seul moyen est de brancher physiquement une sortie du microcontrôleur sur le la pin de reset de l'arduino. par contre c'est un peu un hack sur l'arpschuino car il va falloir souder directement sur une patte du switch de reset, et une sortie sera monopolisée que pour cette fonction.
Il suffit ensuite de faire mettre ta sortie au niveau haut pour reset la carte. C'est un peu de code, mais rien de méchant.
Code : Tout sélectionner
resetFunc();
Pour un hard reset, le seul moyen est de brancher physiquement une sortie du microcontrôleur sur le la pin de reset de l'arduino. par contre c'est un peu un hack sur l'arpschuino car il va falloir souder directement sur une patte du switch de reset, et une sortie sera monopolisée que pour cette fonction.
Il suffit ensuite de faire mettre ta sortie au niveau haut pour reset la carte. C'est un peu de code, mais rien de méchant.
Administrateur - Forum arpschuino
Re: reset via DMX
Oui en effet, il faut déjà déclarer la fonction, en dehors de toute boucle :
Puis appeller
Pour en avoir le cœur net, j'ai écrit un petit code de test pour l'arpschuino :
Ca fonctionne ! quand on envoie le circuit 1 à full, la carte reset, on le visualise facilement par 3 clignotements lents au démarrage de la carte. Le code ne fait rien de plus mais c'est facilement adaptable à d'autre codes.
Code : Tout sélectionner
void(* resetFunc) (void) = 0;
Code : Tout sélectionner
resetFunc();
Code : Tout sélectionner
#include <Arpschuino.h>
#include <lib_dmx.h>
int address=1;
int nbre_circuits (2);//////////minimum 2/////////
void setup()
{
pinMode(LED_BUILTIN, OUTPUT); //met la led verte (temoin) en output
digitalWrite(LED_BUILTIN,HIGH);//eteind la led
for(int i=0;i<3;i++)//clignote 3 fois lentement au démarrage pour montrer qu'on a bien redémarré
{
digitalWrite(LED_BUILTIN,LOW);//
delay(1000);
digitalWrite(LED_BUILTIN,HIGH);//
delay(1000);
}
DMX.attachRXInterrupt (frame_received);
DMX.set_control_pin(ArpDMXControl); // Arduino output pin for MAX485 input/output control (connect to MAX485 pins 2-3)
DMX.set_rx_address(address); // dmx start address
DMX.set_rx_channels(nbre_circuits); // number of rx channels
DMX.init_rx(DMX512); // starts universe 0 as rx, NEW Parameter DMX mode
}
void(* resetFunc) (void) = 0; // declare reset fuction at address 0
void loop()
{
delay(500);//la led s'éteind apres 500ms sans reception DMX
digitalWrite(LED_BUILTIN,HIGH); //
}
void frame_received(uint8_t universe) // cette boucle est executé à chaque réception d'une trame DMX
{
Arp_led_temoin ();//la led clignote si elle reçoit un signal DMX
if (DMX.RxBuffer[0]== 255 )
{
resetFunc(); //call reset
}
}
Re: reset via DMX
Concernant le hard reset, on peut aussi récupérer la broche reset sur les port Serial ou I²C si ils ne sont pas déjà utilisés.
Re: reset via DMX
c'est drôle, je réfléchissais justement à déporter le bouton du reset quand je vois qu'un ami d'enfance de la metteuse en scène avec qui je travaille se la pose aussi.. bon, moi je voudrais faire un reset si je perds le dmx, vous pensez que je peux faire ça avec un câble de 15m pour aller le confier à la régie plateau?
Re: reset via DMX
Le monde est petit !
Oui on peut déporter le reset harware, il faut récupérer la masse et la broche reset (sur le port Serial ou I2C), tirer 2 fils terminés par un bouton poussoir.
15m c'est long ! C'est peut-être prudent d'utiliser un fil blindé pour éviter les resets intempestif. Si ça ne suffit pas, on peut remplacer la résistance 10k de l'arpschuino par une valeur plus faible. C'est une résistance de pull up qui sert justement à ça, une résistance plus faible maintiendra la broche au niveau haut un peu plus "fermement" et la carte consommera un petit peu plus.
Oui on peut déporter le reset harware, il faut récupérer la masse et la broche reset (sur le port Serial ou I2C), tirer 2 fils terminés par un bouton poussoir.
15m c'est long ! C'est peut-être prudent d'utiliser un fil blindé pour éviter les resets intempestif. Si ça ne suffit pas, on peut remplacer la résistance 10k de l'arpschuino par une valeur plus faible. C'est une résistance de pull up qui sert justement à ça, une résistance plus faible maintiendra la broche au niveau haut un peu plus "fermement" et la carte consommera un petit peu plus.
Re: reset via DMX
Ou alors avec un aprsensors RF indépendant qui effectue le hard reset de l'arpschuino en RF12, mais c'est un peu un délire !
Administrateur - Forum arpschuino