Je t'invite à lire la partie 2 et 3 du tuto Arduino où tu apprendras justement à utiliser le 74h595 et les entrées analogiques (pour justement faire un vu-mètre...)
int highest = 350;
int current;
const int verrou = 8;
const int donnee = 13;
const int horloge = 12;
int volume[9] = {0b00000000, 0b00000001, 0b00000011, 0b00000111,
0b00001111, 0b00011111, 0b00111111, 0b01111111,
0b11111111};
char premier = 8; //en binaire : 00001000
char second = 35; //en binaire : 00100011
void setup()
{
//on déclare les broches en sortie
pinMode(verrou, OUTPUT);
pinMode(donnee, OUTPUT);
pinMode(horloge, OUTPUT);
//puis on envoie les données juste une fois
//on commence par mettre le verrou
digitalWrite(verrou, LOW);
//on envoie la seconde donnée d'abord
shiftOut(donnee, horloge, LSBFIRST, ~second); //les LEDs vertes du montage
//on envoie la première donnée
shiftOut(donnee, horloge, LSBFIRST, ~premier); //Les LEDs rouges du montage
//et on relache le verrou pour mettre à jour les données
digitalWrite(verrou, HIGH);
}
void loop()
{
current = map(analogRead(A0), 0, highest, 0, 9);
digitalWrite(verrou, LOW);
shiftOut(donnee, horloge, LSBFIRST, volume[current]);
digitalWrite(verrou, HIGH);
}
Primo : Comme écrit dans ma signature, "mon MP n'est pas une hotline"
Secundo : mettre le code dans une balise de code ca prend 2 clics et ca nous simplifie la vie
Tertio : C'est un forum, pas un chat, on a aussi une vie sociale donc laisse nous le temps de répondre (ca sert à rien de mettre des messages à moins d'une heure d'intervalle si ce dernier n'apporte rien comme le message juste au dessus)
Cela étant dit, As tu relu le cours Arduino sur ce site a propos du 74HC595 et es tu sur d'avoir compris comment il marche ? As tu essayé de décomposer comme je te l'ai conseillé plus tôt ?
mtn j ai une derniere question et apres je te laisse tranquille ^^
comment fusionner deux programmes ensemble :
je m'explique :
je voudrais mettre ce programme
int current;
int highest = 50;
int latchPin = 8;
int clockPin = 12;
int dataPin = 13;
int volume[9] = {
0b00000000, 0b00000001, 0b00000011, 0b00000111,
0b00001111, 0b00011111, 0b00111111, 0b01111111,
0b11111111};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
current = map(analogRead(A0), 0, highest, 0, 9);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, volume[current]);
digitalWrite(latchPin, HIGH);
}
(pour les sorties du ez-expender)
et celui ci :
int led[11] = { 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11}; // Assign the pins for the leds
int leftChannel = 0; // left channel input
int left, i;
void setup()
{
for (i = 0; i < 11; i++) // Tell the arduino that the leds are digital outputs
pinMode(led[i], OUTPUT);
// Serial.begin(9600); // Uncomment to enable troubleshooting over serial.
}
void loop()
{
left = analogRead(leftChannel); // read the left channel
// Serial.println(left); // uncomment to check the raw input.
left = left / 50; // adjusts the sensitivity
// Serial.println(left); // uncomment to check the modified input.
// left = 1500; // uncomment to test all leds light.
// left = 0; // uncomment to check the leds are not lit when the input is 0.
if (left == 0) // if the volume is 0 then turn off all leds
{
for(i = 0; i < 11; i++)
{
digitalWrite(led[i], LOW);
}
}
else
{
for (i = 0; i < left; i++) // turn on the leds up to the volume level
{
digitalWrite(led[i], HIGH);
}
for(i = i; i < 11; i++) // turn off the leds above the voltage level
{
digitalWrite(led[i], LOW);
}
}
}
(pour les sorties du arduino)
dans un meme et unique programme
suffit il de mettre les 2 voidloop ensemble et les 2 voidsetup ensemble ?
void loop()
{
left = analogRead(leftChannel); // read the left channel
// Serial.println(left); // uncomment to check the raw input.
left = left / 50; // adjusts the sensitivity
// Serial.println(left); // uncomment to check the modified input.
// left = 1500; // uncomment to test all leds light.
// left = 0; // uncomment to check the leds are not lit when the input is 0.
current = map(analogRead(A0), 0, highest, 0, 9);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, volume[current]);
digitalWrite(latchPin, HIGH);
oui probablement ... Tu comprends ce que tu fais ou pas ? car donner les solutions toute faite je veux bien mais si tu copies/colles sans te poser trop de question ca sert pas à grand chose
en meme temps je dis des betises aussi... le if(LED[10] == HIGH) vaudra toujours true je suppose puisque c'est la déclaration d'une broche (et donc n'a rien à voir avec l'état de la broche en question)
cependant les sorties 0 et 1 de mon arduino uno sont tjrs allumées meme quand il n'y a pas de musique.
...
- Edité par costiflex 4 juin 2013 à 21:46:28
programmer arduino + ez expander
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !