Outils pour utilisateurs

Outils du site


shutter_dmx

Ceci est une ancienne révision du document !


Réalisation d'un shutter DMX

Matériel

QttNom Valeur Référence Fabricant Fabricant Réf. FournisseurFournisseur
1 Embase XLR ♂ 5 points NC5MBH-B Neutrik 694-9403 RS
1 Embase XLR ♀ 5 points NC5FBH-B Neutrik 568-NC5FBH-B Mouser
3 Commutateur DIP 10 voies DRR60010 KNITTER-SWITCH 708-3232 RS
1 Support DIL 28 voies 1-2199298-9 TE Connectivity 186-5014 RS
1 Micro-contrôleur ATMEGA48P-20PU Microchip 131-0301 RS
1 Quartz 8MHz QCL8.00000F18B23B Qantek 814-9412 RS
2 Condensateur 18pF K180J15C0GF5TL2 Vishay 852-3312 RS
1 Résistance 10kΩ CFR25J10K TE Connectivity 131-378 RS
1 Résistance 120Ω CFR25J120R TE Connectivity 125-1132 RS

Code

Test de fonctionnement du servo-moteur

#include <avr/io.h>
#include <util/delay.h>
 
#define FCPU 8000000                            // Fréquence de l'oscillateur en Hz
#define DIVISEUR 8
#define FREQ_PWM 50                             // Frénquen de la PWM en Hertz
#define M_ICR1 (FCPU/(DIVISEUR * FREQ_PWM)) - 1
 
int main(void) {
    DDRB |= (1 << DDB1); // OC1A en sortie
    TCCR1A |= (1 << WGM11); // Mode Fast PWM avec comme limite ICR1
    TCCR1A |= (1 << COM1A1) |  (1 << COM1A0); // Inversion
    TCCR1B |= (1 << CS11); // Diviseur de fréquence 8
    TCCR1B |= (1 << WGM12) | (1 << WGM13); // Mode Fast PWM avec comme limite ICR1
    ICR1 = M_ICR1;
 
    while(1) {
        OCR1A = ICR1 - 2250;
        _delay_ms(3000);
        OCR1A = ICR1 - 550;
        _delay_ms(3000);
    }
}

Pour lire l'adresse DMX :

    // Configuration pour la lecture de l'adresse DMX
    DDRB  &= ~(1 << DDB2) & ~(1 << DDB3) & ~(1 << DDB4) & ~(1 << DDB5); // PB2, PB3, PB4, PB5 en entrée
    PORTB |= (1 << PB2) | (1 << PB3) | (1 << PB4) | (1 << PB5); // Résitances de tirage haut
    DDRC  &= (1 << DDC0) &~(1 << DDC1) & ~(1 << DDC2) & ~(1 << DDC3); // PC0, PC1, PC2, PC3 en entrée
    PORTC |= (1 << PC0) | (1 << PC1) | (1 << PC2) | (1 << PC3); // Résitances de tirage haut
    DDRD  &= (1 << DDD2) & ~(1 << DDD3) & ~(1 << DDD4) & ~(1 << DDD5); // PD2, PD3, PD4, PD5 en entrée
    PORTD |= (1 << PD2) | (1 << PD3) | (1 << PD4) | (1 << PD5); // Résitances de tirage haut
 
    void adresse() {
        uint16_t adresse = (~(PIND >> 2) & 0b00001111) * 100 + (~PINC & 0b00001111) * 10 + (~(PINB >> 2) & 0b00001111);
        if (adresse == 5) {
            PORTC |= (1 << PC5);
        } else {
            PORTC &= ~(1 << PC5);
        }
    }
 

Réalisation

Maquette

La partie occultante sera sans doute réalisée avec des plaques epoxy de circuit imprimé. Elles résistent bien à la chaleur.Dimension 150 x 200x 1.6.

Le bras du servo-moteur sera lui aussi en epoxy.

Les rails de guidage seront en Téflon : https://www.weber-metaux.com/content/13-plastiques-composites-elastomeres

Matériel

PVC expansé 3mm

https://www.newbiehack.com/MicrocontrollerControlAHobbyServo.aspx

https://www.boutique.resines-et-moulages.com/rubans-et-galons/547-galon-carbone-taffetas-90-grm2.html avec un passe-poil de part et d'autre pris dans des rails de Téflon réalisés avec des tubes de Téflon que l'on peut courber avec une rainures au centre.

Primaire pour coller ensuite le Téflon : LOCTITE SF 770

SWI3-5-E-ST Alimentation Mouser

shutter_dmx.1585137938.txt.gz · Dernière modification : 2020/03/25 12:05 de Mushussu