Ceci est une ancienne révision du document !
Table des matières
Réalisation d'un shutter DMX
Matériel
Qtt | Nom | Valeur | Référence Fabricant | Fabricant | Réf. Fournisseur | Fournisseur |
---|---|---|---|---|---|---|
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
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