bonjour, je ne comprend pas d’où vient la panne.
j’ai ce type de carte :
et câblé le schéma en pièce jointe.
Quand j’alimente la carte en usb, elle fonctionne très bien. mais si je débranche l’usb et que je l’alimente en 5v par vin ou la broche 5v, le ATtiny ne fait que rebooter. Ma diode ne fait que clignoter
#include <sav_button.h>
#include <Bounce.h>
const int mosfet=0;
const int led=1;
const int fire=2;
const int plus=3;
const int moins=4;
int pwm=70;
int pas=10;
int bigPas=30;
int compteurBlocageFire=0;
int compteurBlocagePwm=0;
bool blocageFire=false;
bool blocagePwm=false;
unsigned long tempsFire=0;
unsigned long dureFire=10000;
SButton boutonFire(fire,50,180,10000,300); //broche, durée du rebond ms, durée de l'appui long ms, heure du prochain appui prolongé, temps du double clic
SButton boutonPlus(plus,50,1000,4000,300); //broche, durée du rebond ms, durée de l'appui long ms, heure du prochain appui prolongé, temps du double clic
SButton boutonMoins(moins,50,1000,4000,300); //broche, durée du rebond ms, durée de l'appui long ms, heure du prochain appui prolongé, temps du double clic
Bounce bouncerFire = Bounce( fire,50 );
Bounce bouncerPlus = Bounce( plus,50 );
Bounce bouncerMoins = Bounce( moins,50 );
void setup() {
pinMode(led, OUTPUT);
pinMode(mosfet, OUTPUT);
pinMode(fire, INPUT_PULLUP);
pinMode(plus, INPUT_PULLUP);
pinMode(moins, INPUT_PULLUP);// faut mettre une résistance de pull up ??????????
pinMode(5, INPUT_PULLUP);
clignoteLed(6);
digitalWrite(led,LOW);
digitalWrite(mosfet,LOW);
}
void loop() {
switch( boutonFire.Loop() ){
case CLICK:
clickFire();
break;
case DOUBLE_CLICK:
doubleclickFire();
break;
case LONG_CLICK:
longPressStartFire();
break;
case LONG_CLICK_OFF:
longPressStopFire();
break;
case AUTO_CLICK:
veryLongPressFire();
break;
}
switch( boutonPlus.Loop() ){
case CLICK:
clickPlus();
break;
case DOUBLE_CLICK:
doubleclickPlus();
break;
case LONG_CLICK:
longPressStartPlus();
break;
case LONG_CLICK_OFF:
longPressStopPlus();
break;
}
switch( boutonMoins.Loop() ){
case CLICK:
clickMoins();
break;
case DOUBLE_CLICK:
doubleclickMoins();
break;
case LONG_CLICK:
longPressStartMoins();
break;
case LONG_CLICK_OFF:
longPressStopMoins();
break;
}
}
// bouton fire
void clickFire() {
if (blocageFire==false){
analogWrite(mosfet,pwm);
digitalWrite(led,HIGH);
delay(10);
digitalWrite(mosfet,LOW);
digitalWrite(led,LOW);
} else {
digitalWrite(mosfet,LOW);
digitalWrite(led,LOW);
}
}
void doubleclickFire() {
compteurBlocageFire=compteurBlocageFire+1;
if (compteurBlocageFire == 3){
blocageFire=true;
clignoteLed(3);
}
else if (compteurBlocageFire == 6){
blocageFire=false;
compteurBlocageFire=0;
clignoteLed(6);
} else clignoteLed(1);
}
void longPressStartFire() {
if (blocageFire==false){
analogWrite(mosfet,pwm);
digitalWrite(led,HIGH);
} else {
digitalWrite(mosfet,LOW);
digitalWrite(led,LOW);
}
}
void veryLongPressFire() {
digitalWrite(mosfet,LOW);
digitalWrite(led,LOW);
clignoteLed(5);
}
void longPressStopFire() {
digitalWrite(mosfet,LOW);
digitalWrite(led,LOW);
}
// bouton fire
// bouton plus
void clickPlus() {
if (blocagePwm==false){
pwm=pwm+pas;
digitalWrite(led,HIGH);
delay(10);
digitalWrite(led,LOW);
}else digitalWrite(led,LOW);
}
void doubleclickPlus() {
compteurBlocagePwm=compteurBlocagePwm+1;
if (compteurBlocagePwm == 3){
blocagePwm=true;
clignoteLed(4);
}
else if (compteurBlocagePwm == 6){
blocagePwm=false;
compteurBlocagePwm=0;
clignoteLed(8);
} else clignoteLed(1);
}
void longPressStartPlus() {
if (blocagePwm==false){
pwm=pwm+bigPas;
digitalWrite(led,HIGH);
}else digitalWrite(led,LOW);
}
void longPressStopPlus() {
digitalWrite(led,LOW);
}
// bouton plus
// bouton moins
void clickMoins() {
if (blocagePwm==false){
pwm=pwm-pas;
digitalWrite(led,HIGH);
delay(10);
digitalWrite(led,LOW);
}else digitalWrite(led,LOW);
}
void doubleclickMoins() {
compteurBlocagePwm=compteurBlocagePwm+1;
if (compteurBlocagePwm == 3){
blocagePwm=true;
clignoteLed(4);
}
else if (compteurBlocagePwm == 6){
blocagePwm=false;
compteurBlocagePwm=0;
clignoteLed(8);
} else clignoteLed(1);
}
void longPressStartMoins() {
if (blocagePwm==false){
pwm=pwm-bigPas;
digitalWrite(led,HIGH);
}else digitalWrite(led,LOW);
}
void longPressStopMoins() {
digitalWrite(led,LOW);
}
// bouton moins
int clignoteLed(int cligno){
int y=0;
while (y < cligno){
digitalWrite(led,HIGH);
delay(200);
digitalWrite(led,LOW);
delay(200);
y++;
}
}
// End