chercheursduvrai.fr
To view this board in english, you must be registered.

Pages: (9) « Première ... 2 3 [4] 5 6 ... Dernière » ( Aller vers premier message non lu ) Reply to this topicStart new topicStart Poll

> Lumière hypnagogique
Ecrit le: Jeudi 06 Octobre 2016 à 07h12 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 52
Membre n°: 10826
Inscrit le: 30/11/2015



Resterait à trier l'état de sommeil, provoqué aussi par ces machines chez pas mal de monde, des autres états de conscience modifiée.
PMEmail Poster
Top
Ecrit le: Jeudi 06 Octobre 2016 à 07h44 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Espérons que l'explication donnée à dufoindufoin servira smile.png j'aimerai bien voir apparaître un DIY à partir du reverse engineering (j'ai la flemme de me lancer dedans).


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 13 Octobre 2016 à 06h31 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonsoir,

C'est pas gagné, la génération des fréquences (de 1 hz à 255hz) ne m'est pas possible à faire avec l'arduino, J'ai une idée en tête, faire un générateur carré (555 ou autre) calé sur 255hz et je divise cette fréquence avec 2 cd4522 en cascade.
La valeur de division et prépositionnée avec un registre a décalage 74hc595 avec la valeur complémentaire du tableau excel que vous avez donnée

exemple: 11110101 (soit 245) pour une fréquence de 10hz (c'est le facteur de division des 255hz de base) ces valeurs seront charger par les tableaux excel et envoyé sur le registre a décalage 74hc595

c'est pas facile à expliquer la vision des choses.
Dite moi ce que vous en pensez et s' il y en a qui veules si mettre....

Le but c'est de faire un appareil simple qui fais une seule série de stimulations en se basant sur les valeurs (fréquence , ambiance durée) que vous avez donné.
Et plus tard peut etre si l'effet est interessant faire plus aboutie avec plusieurs séquences.
PMEmail Poster
Top
Ecrit le: Jeudi 13 Octobre 2016 à 07h03 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 52
Membre n°: 10826
Inscrit le: 30/11/2015



Oui, un simple stroboscope générant une fréquence unique permet déjà de tester pas mal de choses, notamment "les visions".
Pour l'état hypnagogique c'est moins évident ...
PMEmail Poster
Top
Ecrit le: Jeudi 13 Octobre 2016 à 11h23 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Modérateurs
Messages: 4027
Membre n°: 181
Inscrit le: 07/10/2006





--------------------
Chaque minute qui passe est une occasion de changer le cours de ta vie.
Page YouTube, Page Dailymotion, Album Picasa, La Force contre-électromotrice, simulation magnétique, Viktor Schauberger
PMEmail Poster
Top
Ecrit le: Jeudi 13 Octobre 2016 à 18h27 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 1753
Membre n°: 291
Inscrit le: 13/06/2007



Citation (Vilo176 @ Jeudi 13 Octobre 2016 à 08h03)
Oui, un simple stroboscope générant une fréquence unique permet déjà de tester pas mal de choses, notamment "les visions".
Pour l'état hypnagogique c'est moins évident ...

Sur Apple Store tu as une application "iTorche" qui permet d'envoyer un stroboscope de 1 à 25 hz assez dé-coiffante smile.png

A++
PM
Top
Ecrit le: Jeudi 13 Octobre 2016 à 21h14 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Citation (dufoindufoin @ Jeudi 13 Octobre 2016 à 06h31)
Bonsoir,

C'est pas gagné, la génération des fréquences (de 1 hz à 255hz) ne m'est pas possible  à faire avec l'arduino, J'ai une idée en tête, faire un générateur carré (555 ou autre) calé sur 255hz et je divise cette fréquence avec 2 cd4522 en cascade.

Je regarde ça et je te dis, il me reste un Arduino Ethernet sous la main.


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 13 Octobre 2016 à 21h40 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonsoir,

Bon je pars sur un cd40103 pour diviser (commandé 10 pour 3.3€ sur ebay), et j'ai mis en pièce jointe un exemple de synthétiseur plus performant, il faut adapter la fréquence a 255hz pour que le code binaire de division du tableau excel corresponde a la bonne fréquence
On remplace les 8 microdips par un registre a décalage 74hc595 .



Image attachée
Image attachée
(56.07 Ko)
PMEmail Poster
Top
Ecrit le: Dimanche 16 Octobre 2016 à 09h56 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Ça avance de mon côté. Par contre je tombe sur une limite de faire du pwm en software avec arduino. La frequence peut pas depasser 250hz.

Il y a un risque de perception de scintillement à 250hz ?
Si oui je changerais ma methode smile.png la nuit a porté conseil.


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Lundi 17 Octobre 2016 à 23h00 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



La réponse est plus de scintillement perceptible si > 100hz.
J'ai tout de même modifié ma méthode de travaille et fonctionne au kilohertz pour le PWM avec arduino.

Voici le LogBook implémentant une première séquence de 5 secondes, 12hz, 100% intensité des flashs et 84% intensité du Background.
Il me reste à valider la sortie des PWM à l'oscilloscope et c'est bon.

https://drive.google.com/open?id=0B3VZSpIAF...VElOLXlZMk1Ublk



--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
  Ecrit le: Mardi 18 Octobre 2016 à 09h05 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonjour Bluedragon,

Je suis impressionné par votre travail et la connaissance de l'arduino que vous matrisée trés bien.

Je persévéré dans la mise en pratique d'une séquence AJNA (AJNA gamma 20m.log) qui contient 134 lignes de steps.
Je compte faire le intensités fliking et ambiance avec 2 lignes PWM de l'arduino et les fréquences avec une synthèse hardware qui sera appliqué aux leds de fliking

La séquence et chargée dans 4 tableaux de variables, la valeur inversé et envoyé sur le 74hc595 pour diviser de la fréquence de 256hz avec le cd40103.
Le puissance fliking et ambiance sont recalculé dans le tableau excel pour avoir des intensite de 0 à 255: 100% = 255 , 30% = 77.
Pour avoir 256hz il faut un quartz de 4.191304 Mhz divisé par 16384 avec le 4060 (je n'utiliserais pas le PLL dans un 1er temps).
Je suis en attente des cd40103, mais tout le reste se comporte bien, les éclairages sont a l'heure actuel de halogène de 10w commandé avec 2 Mos-fet type N directement sur le sorties Arduino .( avec une alimentation sépare de 12v) .

Félicitation pour votre travail.
A+


Image attachée
Image attachée
(54.26 Ko)
PMEmail Poster
Top
Ecrit le: Mardi 18 Octobre 2016 à 12h04 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 2108
Membre n°: 10443
Inscrit le: 08/11/2013



Bonjour, les amis, super boulot en tout cas smile.png
je vois que les idées se mettent en place, donc c'est le moment de faire un retour en arrière pour ne rien oublier
Pour rappel, les 2 PDF déjà postés par JVC dans la précédante page et puis retrouvés (mais c'est toujours en Anglais):
(il y a peut-être mieux maintenant, pour coller au mieux au projet, car la Lucia évolue aussi)
http://eartheart.com.au/wp-content/uploads...-Ajna-Light.pdf
http://ajnalight.com/pdfs/Ajna%20Manual%20Final.pdf
et comparer les points  faibles, et les points forts de chaque solutions,  (arduino ou électonique programmable) et comment remèdier si besoin
icon_rolleyes.gif

en fait, ces 2 façons de faire pourraient très bien arriver à un résutat très proche
(Il y a aussi ce lien à revoir: https://drive.google.com/file/d/0B3VZSpIAFo...hyRFlvTW8/view)

heart.png

ce serait cool
PMEmail Poster
Top
Ecrit le: Mardi 18 Octobre 2016 à 12h13 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 52
Membre n°: 10826
Inscrit le: 30/11/2015



Guy et Garnet, du projet AJNA, ont développé un nouvel appareil nommé "Neuro Light" qui reprend globalement le concept et le matériel d'AJNA, mais dans un but thérapeutique (AJNA c'est plus du récréatif).

Manifestement cette nouvelle lampe sert à stimuler le cerveau pour favoriser son développement et/ou sa récupération suite à problèmes (AVC, Alzheimer, etc ...), toujours via lumières pulsées.
Ils font également appel à la notion de stimulation trans-craniène pour booster le cerveau (une partie de la lumière serait capable d'impacter certaines zones su cerveau y compris à travers les os du crane).

Pour ce projet, il n'est plus question de génération aléatoire du signal, mais de sessions codées en dur et mises au point via neuro-feedback et analyse théorique, comme pour LUCIA.

Encore un billet de $4000 à sortir pour les intéressés icon_wink.gif
PMEmail Poster
Top
Ecrit le: Mardi 18 Octobre 2016 à 19h47 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Citation (dufoindufoin @ Mardi 18 Octobre 2016 à 09h05)
[1]
Je persévéré dans la mise en pratique d'une séquence AJNA (AJNA gamma 20m.log) qui contient 134 lignes de steps.
Je compte faire le intensités fliking et ambiance avec 2 lignes PWM de l'arduino et les fréquences  avec une synthèse hardware qui sera appliqué aux leds de fliking

[2]
mais tout le reste se comporte bien, les éclairages sont a l'heure actuel de halogène de 10w commandé avec 2 Mos-fet  type N directement sur le sorties Arduino .( avec une alimentation sépare de 12v) .

Bonjour,

Tu peux me vouvoyer, dans l'école du partage de la connaissance, il n'y a pas de différenciation entre deux humains wink.png

Pour le point [1], mon code te permettra de gérer le tout (fréquence, intensité des leds + intensité de l'ambiance) uniquement avec deux lignes PWM. Je valide ce soir les signaux de sortis à l'oscilloscope mais mon nez me dit que c'est bueno (cf les résultats Excel que j'ai obtenu). 
Dis autrement, tu pourras te passer des quartz, diviseur/compteur intermédiaires et tu n'aurai qu'à piloter tes étages de puissances à partir des deux sorties Arduino. 

Pour le point [2] c'est plus intéressant : ça veut dire que tu as déjà au moins un étage de puissance pour gérer l'halogène (Pour les led tu as quoi ?)
Je valides mes signaux, publie les résultats, et te communique le code. Il devrait être utilisable en l'état pour la toute première séquence (dite de DEBUG) sur les pin 9 et 10 de n'importe quel Arduino à base de ATMEGA328P (Donc ton Arduino UNO est compatible avec mon programme).

L'implémentation du code que j'ai fait devrait permettre de pousser le flickering des Leds au delà des 200hz, ce qui permet si j'ai bien compris de couvrir la plage des OOBE pour les plus joueurs.

OK pour la session gamma de 20 minutes et ses 134 lignes de step en mémoire. C'est la méthode la plus rapide, celle de l'embarquer dans le programme. A terme, on devrait pouvoir utiliser PROGMEM pour utiliser l'espace de 32Ko plutôt que la SRAM, faut que je retrouve comment on fait.

Au plaisir, mon objectif était de t'aider à implémenter au mieux la chose en mettant à ta disposition mes compétences sur Arduino.


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Mardi 18 Octobre 2016 à 21h03 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Je viens de corriger mon code, car seul un canal PWM était activé.
Actuellement le flickering ne marche pas. Je suspecte que ma façon d'éteindre le port 9 ou 10 ne marche pas lorsque le PWM est actif.
Plusieurs solution possible en cours de recherche pour trouver la meilleure implémentation.


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Mardi 18 Octobre 2016 à 21h08 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



bonsoir,

Je suis allé me chercher 3 cd40103 à coté de chez moi (c'est plus rapide que la chine 2,50 € les 3), et je continu.
Mais le duty cycle n'étant pas bon j'ai du mettre une bascule d (cd4013) en sorti du diviseur pour avoir du 50% (le quartz devra etre divisé que pas 8192 pour avoir 512Hz de bas).
De plus le facteur de division n'est pas le fréquence a obtenir (c'était trop simple) en fait je pense que c'est 256hz- divisé par la fréquence voulue, mais cela donne
des valeur decimale et la division ne prend en compte que la parti entière.

freq periode facteur de division
15 0,066666667 17,06666667
16 0,0625 16
17 0,058823529 15,05882353
18 0,055555556 14,22222222
19 0,052631579 13,47368421
20 0,05 12,8
21 0,047619048 12,19047619
22 0,045454545 11,63636364
23 0,043478261 11,13043478
24 0,041666667 10,66666667
25 0,04 10,24
26 0,038461538 9,846153846
27 0,037037037 9,481481481
28 0,035714286 9,142857143
29 0,034482759 8,827586207
30 0,033333333 8,533333333
31 0,032258065 8,258064516
32 0,03125 8

il y a de steps ou la fréquence ne changera pas.

je vais continuer et merci Bluedragon.
A+
PMEmail Poster
Top
Ecrit le: Mardi 18 Octobre 2016 à 21h48 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Hello dufoindufoin,

Tout est fonctionnel désormais. il ne manquera plus que la définition des séquences.
Les sorties PWM sont testées et validées, preuves dans le logbook à compter de la page 18.
Le flickering peut monter jusqu'à 400hz (voir plus mais ça sert à rien de monter aussi haut, donc il y a du mou sous le pied).
La fréquence de 8Khz devrait être "suivable" par l'étage de puissance que tu as construit.

Après c'est du Plug&Play :

Dans le code, change les valeurs dans le bloc
#define TestSequenceDuree 5
#define TestSequenceFlashFrequence 400 // en hertz
#define TestSequenceFlashIntensite 43 // en pourcentage
#define TestSequenceAmbianceIntensite 35 // enpourcentage

Et mets y ce que tu veux pour tester ton materiel.
La sortie PWM des LEDS se fait sur le Pin 9 de ton arduino
La sortie PWM de la lumiere d'ambiance se fait sur le pin 10 de ton Arduino
Si tu ouvres la console du port serie, il te donnera les infos de DEBUG et à quel moment il flick (trace "LED-")

Il ne reste plus qu'à implémenter les séquences et c'est fini pour la partie Arduino.

Nouveau LogBook : https://drive.google.com/open?id=0B3VZSpIAF...TF9kSzNhUkROdFk

Le code :
CODE
/*
* Hypnagogia.ino
*
* Created: 10/14/2016 9:44:14 PM
* Author: BlueDragon
* Board : ARDUINO ETHERNET (version 08D Revision 3)
*/

// HYPNA_FLASH
#define HYPNA_FLASH 9 // le pin 9 correspond à PB1 ou OCR1A
#define HYPNA_FLASH_SETUP DDRB = DDRB | 0b00000010; PORTB = PORTB | 0b00000010
#define HYPNA_FLASH_ON OCR1A = LedFlashPWM
#define HYPNA_FLASH_OFF OCR1A = 0
// HYPNA_AMBIANCE
#define HYPNA_AMBIANCE 10 // le pin 10 correspond à PB2 ou OCR1B
#define HYPNA_AMBIANCE_SETUP DDRB = DDRB | 0b00000100; PORTB = PORTB | 0b00000100
#define HYPNA_AMBIANCE_ON OCR1B = LedAmbiancePWM
#define HYPNA_AMBIANCE_OFF OCR1B = 0

// --- definition des constances
#define ALLUME 1
#define ETEINT 0
#define TestSequenceDuree 5
#define TestSequenceFlashFrequence 400 // en hertz
#define TestSequenceFlashIntensite 43 // en pourcentage
#define TestSequenceAmbianceIntensite 35 // enpourcentage
#define __DEBUG__ 1

// --- definition des variables
unsigned long SequenceDuree = 0;
unsigned long SequenceFlashPeriode = 0;
byte SequenceFlashIntensite = 0;
byte SequenceAmbianceIntensite = 0;

unsigned long TimerDureeEcoulee = 0;

// La LED AMBIANCE travaille continuellement avec un PWM OCR1B
// pas d'implémentation de variable
// Les LED Flash sont dimmées, ce qui implique de gérer un DutyCycle pendant l'état Haut. La porteuse de ce DutyCycle est celle du PWM principal (PWMFreqPorteuse)
bool LedFlashState = ALLUME;
uint16_t LedFlashPWM = 0;
uint16_t LedAmbiancePWM = 0;
unsigned long LedFlashTick = 0;



void setup()
{

// --- SETUP HARDWARE
// --- configuration véloce (interruption disable) de l'Arduino pour le placer le plus rapidement possible dans un �tat stable
uint8_t oldSREG = SREG;
cli(); // désactivation de toutes les interruptions
//========== CONFIG TIMER / PWM
// -- Configuration du Timer 0 (TCCR0A - 8-bit Timer/Counter0) -- ne pas toucher relié au quartz pour les impulsions du timer Arduino
// -- Configuration du Timer 1 (16-bit Timer/Counter1 with PWM)
TCCR1A = 0b0 | bit(COM1A1) | bit(COM1B1) | bit(WGM11) | bit(WGM10);
TCCR1B = 0b0 | bit(CS10); //-- 0b00000001
TCCR1C = 0b0; // comparaison forcée du Channel A et B désactivé
TCNT1 = 0b0; // remise à zero du compteur
OCR1A = 0b0; // remise à zero du registre de comparaison
OCR1B = 0b0; // remise à zero du registre de comparaison
TIMSK1 = 0b0; // remise à zero du Masque de registre d'interruption
TIFR1 = 0b0; // remise à zero du flag d'interruption
// -- Configuration du Timer 2 (8-bit Timer/Counter2 with PWM and Asynchronous Operation)
TCCR2A = 0b0; // Normal Port Opération, OC2A et OC2B déconnectés (pas d'interruption),
TCCR2B = 0b0; // Input Capture Noise Canceler off, input capture edge select sur front descendant, Normal Port Opération, Pas de Timer (CS12=CS11=CS10=0)
TCNT2 = 0b0; // remise à zero du compteur
OCR2A = 0b0; // remise à zero du registre de comparaison
OCR2B = 0b0; // remise à zero du registre de comparaison
TIMSK2 = 0b0; // remise à zero du Masque de registre d'interruption
ASSR = 0b0; // Remise à zero du registre de status asynchrone
TIFR2 = 0b0; // remise à zero du flag d'interruption

//========== CONFIG PIN
// tous les pins inutilisés doivent être en mode INPUT avec la resistance de PULLUP
// DDxn = 0 & PORTxn = 0 => Tri-state (Hi-Z)
// ports à ne pas toucher : PC6 (reset), PB6 & PB7 (Quartz), PD0 & PD1 (Serial TX/RX pour l'USB)
//Direction des PORTSD - mode entrant
DDRD = DDRD & 0b00000011;
PORTD = PORTD & 0b00000011;
//Direction des PORTSC - mode entrant (le PC7 n'existe pas)
DDRC = DDRC & 0b01000000;
PORTC = PORTC & 0b01000000;
//Direction des PORTSB - mode entrant
DDRB = DDRB & 0b11000000;
PORTB = PORTB & 0b11000000;
// désactivation des interruptions pour les pins spéciaux PD3 & PD2 (Pin 3 et Pin 2)
EIMSK = 0b0; //External Interrupt Mask Register
EIFR = 0b0; //remise à zero du External Interrupt Flag Register
PCICR = 0b0; //Pin Change Interrupt Control Register
PCMSK0 = 0b0;
SREG = oldSREG; // réactivation des interruptions normales


// -- Setup initial des LEDS
HYPNA_FLASH_SETUP;
HYPNA_AMBIANCE_SETUP;

// -- Initialisation de l'Arduino et envoie de la trame "ONLINE!" sur le port s�rie pour recevoir l'ordre de d�blocage
Serial.begin(115200);
Serial.println(F("ONLINE!"));
}

void loop()
{
if(__DEBUG__)
{
 Serial.print(F("DEBUG;"));
 Serial.print(TestSequenceDuree);
 Serial.print(F(";"));
 Serial.print(TestSequenceFlashFrequence);
 Serial.print(F(";"));
 Serial.print(TestSequenceFlashIntensite);
 Serial.print(F(";"));
 Serial.println(TestSequenceAmbianceIntensite);
 SequenceDuree = TestSequenceDuree * 1000000;
 SequenceFlashPeriode = (unsigned long)(( 1.0 / TestSequenceFlashFrequence)*1000000 / 2);
 SequenceFlashIntensite = TestSequenceFlashIntensite;
 SequenceAmbianceIntensite = TestSequenceAmbianceIntensite;
}

//============ BLOC 0 -- setup pour démarrage de la séquence
//envoie des données au PC pour suivi
Serial.print(F("START;"));
Serial.print(SequenceDuree);
Serial.print(F(";"));
Serial.print(SequenceFlashPeriode);
Serial.print(F(";"));
Serial.print(SequenceFlashIntensite);
Serial.print(F(";"));
Serial.println(SequenceAmbianceIntensite);
// extinction des feux
HYPNA_FLASH_OFF;
OCR1A = 0;
HYPNA_AMBIANCE_OFF;
OCR1B = 0;
//============ BLOC 1 -- DUREE DE LA SEQUENCE
// --- setup des variables de SETUP
bool __SETUP__ = false;
// --- setup du timer pour lancement
SequenceDuree += micros();
TimerDureeEcoulee = micros();
LedFlashTick = TimerDureeEcoulee + SequenceFlashPeriode;
while(TimerDureeEcoulee <= SequenceDuree)
{
 //============ BLOC 2 -- SETUP des ports et du PWM si première boucle
 if(__SETUP__ == false)
 {
  //Gestion de la lumière d'ambiance
  LedAmbiancePWM = (uint16_t) (SequenceAmbianceIntensite/100.0 * 1023); // ne sert que temporairement
  HYPNA_AMBIANCE_ON;
  if(__DEBUG__)
  {
   Serial.print(F("AMB_PWM-"));
   Serial.println(LedFlashPWM);
  }
  //Gestion de la lumière Flash
  LedFlashPWM = (uint16_t) (SequenceFlashIntensite/100.0 * 1023); // sert définitivement pour la séquence
  HYPNA_FLASH_ON;
  if(__DEBUG__)
  {
   Serial.print(F("LED_PWM-"));
   Serial.println(LedFlashPWM);
  }
  __SETUP__ = true;
 }

 //============ BLOC 4 -- COMPUTATION / CALCUL DE L'ETAT DES LEDS SUIVANT LE TEMPS ECOULE
 // --- LEDS FLASH
 if(TimerDureeEcoulee >= LedFlashTick)
 {
  LedFlashState = !LedFlashState; //on bascule l'état des flashs
  LedFlashTick += SequenceFlashPeriode; //on rattrape la dérive temporelle si il y en a une
  if(__DEBUG__)
  {
   Serial.print(F("LED-"));
   Serial.println(TimerDureeEcoulee);
  }
  if(LedFlashState)
  {
   HYPNA_FLASH_ON;
   
  }
  else
  {
   HYPNA_FLASH_OFF;
  }
 }

 //-- fin de la boucle, on met à jour le traceur de temps qui passe et on recommence...
 TimerDureeEcoulee = micros();
}
Serial.println(F("END"));
if(__DEBUG__)
{
 Serial.print(F("TimerDureeEcoulee : "));
 Serial.println(TimerDureeEcoulee);
}
delay(5000);

}



--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Mardi 18 Octobre 2016 à 22h03 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Au final, il était pas si pourri que ça mon dessin wink.png

En Théorie : implémentation du leds flickering :

user posted image

En pratique => mesure des leds flickering @400hz avec un PWM Arduino 10bits@7.813Khz qui permet une intensité de 43% des flashs :
user posted image

Note : 10bits pour le PWM c'est carrement trop luxueux (gestion de l'intensité sur 1024 gradients), mais j'avais pas envie de m’embêter avec les registre. Du coup tu surperformeras AJNA avec un modèle de flickering bien plus stable wink.png


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Mercredi 19 Octobre 2016 à 12h51 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 52
Membre n°: 10826
Inscrit le: 30/11/2015



En pratique sous Ajna, les fréquences au delà de 50Hz sont désagréables car trop dégradées par la dérive.
Il y a de gros flash lumineux intermittents qui viennent gêner l'expérience utilisateur.

En terme de visions, au delà de 20Hz perso je ne vois plus rien de sympa, juste des figures style moiré en niveaux de gris.
Par contre comme tu dis Blue, il semble que des effets "non standards" puissent intervenir aux hautes fréquences (50-200Hz).
A voir quand vous aurez touché au but.
PMEmail Poster
Top
Ecrit le: Mercredi 19 Octobre 2016 à 20h54 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Dufoindufoin, tu voudrais bien tester mon code à l'occasion si tu peux, avec ton etage de puissance ?


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Mercredi 19 Octobre 2016 à 22h06 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonsoir,

Bluedragon j'ais teste avec les mosfet et c'est bon, ce n'est que 2 mosfef et une alim 12v indépendante, au debut je mettais 12 v pout tout sur l"arduino et j'ais cramé un arduino.
Les mos sans radiateur ne chauffes pas avec 10 w.
Ton code marche tres bien avec les valeurs de testsequence.
je passe du temps à comprendre ton code qui est très technique pour moi, il y a des instruction que je ne connaissais pas,+ rattrapage des dérives, mais bon avec du temps.
J'essaye de rajouter les 4 tableaux dans le code avec une boucle de lecture pour les 134 steps.

A+.
PMEmail Poster
Top
Ecrit le: Jeudi 20 Octobre 2016 à 13h29 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonjour,

Bluedragon dans ton code ligne 156 je pense qu'il y a une erreur (de saisie ) il faut ecrire Serial.println(LedAmbiancePWM); mais c'est juste pour le debug.
La syntaxe du debug m'échappe un peut pour l'activer et le désactiver: #define __DEBUG__ 1 = activation
#define __DEBUG__ 0 = désactivation ?????

et où mettre le chargement des tableaux ?.

Merci.
PMEmail Poster
Top
Ecrit le: Jeudi 20 Octobre 2016 à 18h57 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Hello,

Bon c'est une bonne chose que ça marche.
Il y a un fuse special sur l arduino donc ne le jete pas si tu penses l avoir cramé, attends 10min et il devrait remarcher (me semble t il).

Pour les vraies sequences, ça arrive. J'ai pas put bosser encore dessus, je regarde ça ce soir.

Oui si tu veux desactiver le debug tu changes le 1 à 0 mais là y a rien qui fonctionnera. Le code est fait juste pour tourner en debug sur une sequence de test predefini. Le but c etait de franchir l etape d implementer une sequence wink.png


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 20 Octobre 2016 à 19h01 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Le tableau il faut le definir dans les variables globales ( en dehors du setup et loop).
Apres tu rajoute une boucle qui englobe le while, qui lit les valeurs du tableaux.
Je fais ça ce soir pour te montrer, sans le progmem.


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 20 Octobre 2016 à 19h34 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Citation (dufoindufoin @ Jeudi 20 Octobre 2016 à 13h29)
Bluedragon dans ton code ligne 156 je pense qu'il y a une erreur (de saisie ) il faut ecrire Serial.println(LedAmbiancePWM); 

Exact !


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 20 Octobre 2016 à 19h38 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Voici le nouveau code à tester avec tout AJNA_delta_20m.

Compiling 'Hypnagogia' for 'Arduino Ethernet'

Program size: 5 856 bytes (used 18% of a 32 256 byte maximum) (0,41 secs)
Minimum Memory Usage: 1874 bytes (92% of a 2048 byte maximum)
 
Uploading 'Hypnagogia' to 'Arduino Ethernet' using 'COM4'
The upload process has finished.

=> On est vraimment limite limite ! (92%), il faut passer en PROGMEM

Nouveau code :
CODE
/*
* Hypnagogia.ino
*
* Created: 10/14/2016 9:44:14 PM
* Author: BlueDragon
* Board : ARDUINO ETHERNET (version 08D Revision 3)
*/

// HYPNA_FLASH
#define HYPNA_FLASH 9 // le pin 9 correspond à PB1 ou OCR1A
#define HYPNA_FLASH_SETUP DDRB = DDRB | 0b00000010; PORTB = PORTB | 0b00000010
#define HYPNA_FLASH_ON OCR1A = LedFlashPWM
#define HYPNA_FLASH_OFF OCR1A = 0
// HYPNA_AMBIANCE
#define HYPNA_AMBIANCE 10 // le pin 10 correspond à PB2 ou OCR1B
#define HYPNA_AMBIANCE_SETUP DDRB = DDRB | 0b00000100; PORTB = PORTB | 0b00000100
#define HYPNA_AMBIANCE_ON OCR1B = LedAmbiancePWM
#define HYPNA_AMBIANCE_OFF OCR1B = 0

// --- definition des constances
#define ALLUME 1
#define ETEINT 0
#define TestSequenceDuree 5
#define TestSequenceFlashFrequence 400 // en hertz
#define TestSequenceFlashIntensite 43 // en pourcentage
#define TestSequenceAmbianceIntensite 35 // enpourcentage
#define __DEBUG__ 0

// --- definition des variables
unsigned long SequenceDuree = 0;
unsigned long SequenceFlashPeriode = 0;
byte SequenceFlashIntensite = 0;
byte SequenceAmbianceIntensite = 0;
unsigned long TimerDureeEcoulee = 0;

// La LED AMBIANCE travaille continuellement avec un PWM OCR1B
// pas d'implémentation de variable
// Les LED Flash sont dimmées, ce qui implique de gérer un DutyCycle pendant l'état Haut. La porteuse de ce DutyCycle est celle du PWM principal (PWMFreqPorteuse)
bool LedFlashState = ALLUME;
uint16_t LedFlashPWM = 0;
uint16_t LedAmbiancePWM = 0;
unsigned long LedFlashTick = 0;

//Implémentation du Tableau de séquence - AJNA_delta_20m
uint16_t TabIndex=0;
uint16_t TabSize=0;
float TabSequenceDuree[] = {
5,5,4,4.5,4.5,5,3.5,3,5,5,4,4.5,4.5,5,3.5,3,4,4,3.5,3.5,4,3.5,5,3,4,4,3.5,3.5,4,3.5,5,3,3.5,5,5,5,3.5,4.5,5,3,4,4,5,3,3,4,4,3.5,4,4,5,3,3,4,4,3.5,4,4,3.5,3.5,4,3.5,5,3,5,5,4,4.5,4.5,5,3.5,3,5,5,4,4.5,4.5,5,3.5,3,4,4,3.5,3.5,4,3.5,5,3,4,4,3.5,3.5,4,3.5,5,3,3.5,5,5,5,3.5,4.5,5,3,4,4,5,3,3,4,4,3.5,4,4,5,3,3,4,4,3.5,4,4,3.5,3.5,4,3.5,5,3,4,4,3.5,3.5,4,3.5,5,3,8,10,6,8,3.5,7,8,10,6,8,3.5,7,6.5,6.5,7.5,7.5,4.5,5,8,5.5,6.5,6.5,7.5,7.5,4.5,5,8,5.5,8.5,7.5,7.5,7.5,3,6.5,4.5,3,8,10,6,8,3.5,7,8,10,6,8,3.5,7,8.5,7,9,8.5,4,9.5,4.5,10,3.5,9,6.5,3,3.5,8,5.5,6.5,3.5,9,6.5,3,3.5,8,5.5,6.5,7,7,6.5,7,8,5,7,7,6.5,7,8,5,3.5,7.5,5,8.5,6.5,9,6.5,5.5,3.5,7.5,5,8.5,6.5,9,6.5,5.5,0.5
};
byte TabSequenceFlashFrequence[] = {
10,12,27,22,8,12,17,11,10,12,27,22,8,12,17,11,10,11,12,11,22,8,27,8,10,11,12,11,22,8,27,8,12,12,16,8,22,24,24,9,8,25,12,19,11,13,29,10,8,25,12,19,11,13,29,10,10,11,12,11,22,8,27,8,10,12,27,22,8,12,17,11,10,12,27,22,8,12,17,11,10,11,12,11,22,8,27,8,10,11,12,11,22,8,27,8,12,12,16,8,22,24,24,9,8,25,12,19,11,13,29,10,8,25,12,19,11,13,29,10,10,11,12,11,22,8,27,8,10,11,12,11,22,8,27,8,12,8,8,6,24,9,12,8,8,6,24,9,16,11,18,16,9,11,10,4,16,11,18,16,9,11,10,4,9,11,11,25,16,11,21,11,12,8,8,6,24,9,12,8,8,6,24,9,8,8,12,29,8,8,5,9,10,8,10,8,10,12,10,11,10,8,10,8,10,12,10,11,9,11,8,11,12,11,9,11,8,11,12,11,10,12,8,9,11,10,12,11,10,12,8,9,11,10,12,11,10
};
byte TabSequenceFlashIntensite[] = {
100,100,92,100,100,96,54,88,100,100,92,100,100,96,54,88,100,100,50,100,100,100,100,100,100,100,50,100,100,100,100,100,100,100,90,54,56,94,100,82,100,90,100,100,56,100,100,62,100,90,100,100,56,100,100,62,100,100,50,100,100,100,100,100,100,100,92,100,100,96,54,88,100,100,92,100,100,96,54,88,100,100,50,100,100,100,100,100,100,100,50,100,100,100,100,100,100,100,90,54,56,94,100,82,100,90,100,100,56,100,100,62,100,90,100,100,56,100,100,62,100,100,50,100,100,100,100,100,100,100,50,100,100,100,100,100,88,64,54,72,46,88,88,64,54,72,46,88,76,68,76,92,62,40,54,62,76,68,76,92,62,40,54,62,100,94,42,98,68,94,84,44,88,64,54,72,46,88,88,64,54,72,46,88,64,86,98,68,100,68,80,96,66,100,100,100,74,26,56,100,66,100,100,100,74,26,56,100,96,100,100,100,26,24,96,100,100,100,26,24,86,100,100,90,100,100,100,100,86,100,100,90,100,100,100,100,100
};
byte TabSequenceAmbianceIntensite[] = {
84,36,60,84,60,60,54,18,84,36,60,84,60,60,54,18,36,36,18,48,72,24,66,36,36,36,18,48,72,24,66,36,66,60,78,66,36,72,30,12,72,42,66,60,48,12,30,36,72,42,66,60,48,12,30,36,36,36,18,48,72,24,66,36,84,36,60,84,60,60,54,18,84,36,60,84,60,60,54,18,36,36,18,48,72,24,66,36,36,36,18,48,72,24,66,36,66,60,78,66,36,72,30,12,72,42,66,60,48,12,30,36,72,42,66,60,48,12,30,36,36,36,18,48,72,24,66,36,36,36,18,48,72,24,66,36,54,90,66,54,66,66,54,90,66,54,66,66,90,90,78,90,66,54,60,72,90,90,78,90,66,54,60,72,54,84,84,72,72,84,78,36,54,90,66,54,66,66,54,90,66,54,66,66,54,42,48,36,78,78,36,90,66,72,36,24,60,72,60,66,66,72,36,24,60,72,60,66,72,60,84,24,18,42,72,60,84,24,18,42,48,36,36,54,60,42,66,48,48,36,36,54,60,42,66,48,30
};




void setup()
{

// --- SETUP HARDWARE
// --- configuration véloce (interruption disable) de l'Arduino pour le placer le plus rapidement possible dans un �tat stable
uint8_t oldSREG = SREG;
cli(); // désactivation de toutes les interruptions
//========== CONFIG TIMER / PWM
// -- Configuration du Timer 0 (TCCR0A - 8-bit Timer/Counter0) -- ne pas toucher relié au quartz pour les impulsions du timer Arduino
// -- Configuration du Timer 1 (16-bit Timer/Counter1 with PWM)
TCCR1A = 0b0 | bit(COM1A1) | bit(COM1B1) | bit(WGM11) | bit(WGM10);
TCCR1B = 0b0 | bit(CS10); //-- 0b00000001
TCCR1C = 0b0; // comparaison forcée du Channel A et B désactivé
TCNT1 = 0b0; // remise à zero du compteur
OCR1A = 0b0; // remise à zero du registre de comparaison
OCR1B = 0b0; // remise à zero du registre de comparaison
TIMSK1 = 0b0; // remise à zero du Masque de registre d'interruption
TIFR1 = 0b0; // remise à zero du flag d'interruption
// -- Configuration du Timer 2 (8-bit Timer/Counter2 with PWM and Asynchronous Operation)
TCCR2A = 0b0; // Normal Port Opération, OC2A et OC2B déconnectés (pas d'interruption),
TCCR2B = 0b0; // Input Capture Noise Canceler off, input capture edge select sur front descendant, Normal Port Opération, Pas de Timer (CS12=CS11=CS10=0)
TCNT2 = 0b0; // remise à zero du compteur
OCR2A = 0b0; // remise à zero du registre de comparaison
OCR2B = 0b0; // remise à zero du registre de comparaison
TIMSK2 = 0b0; // remise à zero du Masque de registre d'interruption
ASSR = 0b0; // Remise à zero du registre de status asynchrone
TIFR2 = 0b0; // remise à zero du flag d'interruption

//========== CONFIG PIN
// tous les pins inutilisés doivent être en mode INPUT avec la resistance de PULLUP
// DDxn = 0 & PORTxn = 0 => Tri-state (Hi-Z)
// ports à ne pas toucher : PC6 (reset), PB6 & PB7 (Quartz), PD0 & PD1 (Serial TX/RX pour l'USB)
//Direction des PORTSD - mode entrant
DDRD = DDRD & 0b00000011;
PORTD = PORTD & 0b00000011;
//Direction des PORTSC - mode entrant (le PC7 n'existe pas)
DDRC = DDRC & 0b01000000;
PORTC = PORTC & 0b01000000;
//Direction des PORTSB - mode entrant
DDRB = DDRB & 0b11000000;
PORTB = PORTB & 0b11000000;
// désactivation des interruptions pour les pins spéciaux PD3 & PD2 (Pin 3 et Pin 2)
EIMSK = 0b0; //External Interrupt Mask Register
EIFR = 0b0; //remise à zero du External Interrupt Flag Register
PCICR = 0b0; //Pin Change Interrupt Control Register
PCMSK0 = 0b0;
SREG = oldSREG; // réactivation des interruptions normales

// -- Setup initial des LEDS
HYPNA_FLASH_SETUP;
HYPNA_AMBIANCE_SETUP;

// -- comptage du nombre d'indexe dans les tableaux importés
TabSize = (sizeof(TabSequenceFlashFrequence) / sizeof(byte)) - 1;

// -- Initialisation de l'Arduino et envoie de la trame "ONLINE!" sur le port s�rie pour recevoir l'ordre de d�blocage
Serial.begin(115200);
Serial.println(F("ONLINE!"));
}

void loop()
{
while(TabIndex < TabSize)
{
 if(__DEBUG__)
 {
  Serial.print(F("DEBUG;"));
  Serial.print(TestSequenceDuree);
  Serial.print(F(";"));
  Serial.print(TestSequenceFlashFrequence);
  Serial.print(F(";"));
  Serial.print(TestSequenceFlashIntensite);
  Serial.print(F(";"));
  Serial.println(TestSequenceAmbianceIntensite);
  SequenceDuree = TestSequenceDuree * 1000000;
  SequenceFlashPeriode = (unsigned long)(( 1.0 / TestSequenceFlashFrequence)*1000000 / 2);
  SequenceFlashIntensite = TestSequenceFlashIntensite;
  SequenceAmbianceIntensite = TestSequenceAmbianceIntensite;
 }
 else
 {
  SequenceDuree = TabSequenceDuree[TabIndex] * 1000000;
  SequenceFlashPeriode = (unsigned long)(( 1.0 / TabSequenceFlashFrequence[TabIndex])*1000000 / 2);
  SequenceFlashIntensite = TabSequenceFlashIntensite[TabIndex];
  SequenceAmbianceIntensite = TabSequenceAmbianceIntensite[TabIndex];
 }

 //============ BLOC 0 -- setup pour démarrage de la séquence
 //envoie des données au PC pour suivi
 Serial.print(F("START;"));
 Serial.print(SequenceDuree);
 Serial.print(F(";"));
 Serial.print(SequenceFlashPeriode);
 Serial.print(F(";"));
 Serial.print(SequenceFlashIntensite);
 Serial.print(F(";"));
 Serial.println(SequenceAmbianceIntensite);
 // extinction des feux
 HYPNA_FLASH_OFF;
 OCR1A = 0;
 HYPNA_AMBIANCE_OFF;
 OCR1B = 0;
 //============ BLOC 1 -- DUREE DE LA SEQUENCE
 // --- setup des variables de SETUP
 bool __SETUP__ = false;
 // --- setup du timer pour lancement
 SequenceDuree += micros();
 TimerDureeEcoulee = micros();
 LedFlashTick = TimerDureeEcoulee + SequenceFlashPeriode;
 while(TimerDureeEcoulee <= SequenceDuree)
 {
  //============ BLOC 2 -- SETUP des ports et du PWM si première boucle
  if(__SETUP__ == false)
  {
   //Gestion de la lumière d'ambiance
   LedAmbiancePWM = (uint16_t) (SequenceAmbianceIntensite/100.0 * 1023); // ne sert que temporairement
   HYPNA_AMBIANCE_ON;
   if(__DEBUG__)
   {
    Serial.print(F("AMB_PWM-"));
    Serial.println(LedAmbiancePWM);
   }
   //Gestion de la lumière Flash
   LedFlashPWM = (uint16_t) (SequenceFlashIntensite/100.0 * 1023); // sert définitivement pour la séquence
   HYPNA_FLASH_ON;
   if(__DEBUG__)
   {
    Serial.print(F("LED_PWM-"));
    Serial.println(LedFlashPWM);
   }
   __SETUP__ = true;
  }

  //============ BLOC 3 -- COMPUTATION / CALCUL DE L'ETAT DES LEDS SUIVANT LE TEMPS ECOULE
  // --- LEDS FLASH
  if(TimerDureeEcoulee >= LedFlashTick)
  {
   LedFlashState = !LedFlashState; //on bascule l'état des flashs
   LedFlashTick += SequenceFlashPeriode; //on rattrape la dérive temporelle si il y en a une
   if(__DEBUG__)
   {
    Serial.print(F("LED-"));
    Serial.println(TimerDureeEcoulee);
   }
   if(LedFlashState)
   {
    HYPNA_FLASH_ON;
   
   }
   else
   {
    HYPNA_FLASH_OFF;
   }
  }

  //-- fin de la boucle, on met à jour le traceur de temps qui passe et on recommence...
  TimerDureeEcoulee = micros();
 }
 //Entrée tableau Sequence suivante
 TabIndex++;
 Serial.print(F("END;"));
 Serial.print(TimerDureeEcoulee);
 Serial.print(F(";Index;"));
 Serial.println(TabIndex);
}
TabIndex = 0;
}



--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Jeudi 20 Octobre 2016 à 20h06 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonsoir Bluedragon,

Félicitation pour ton code qui marche très bien, je viens de l'essayer et tout est OK .

le CPU est limite:

Le croquis utilise 5 244 octets (17%) de l'espace de stockage de programmes. Le maximum est de 30 720 octets.
Les variables globales utilisent 1 872 octets (91%) de mémoire dynamique, ce qui laisse 176 octets pour les variables locales. Le maximum est de 2 048 octets.
La mémoire disponible faible, des problèmes de stabilité pourraient survenir.

Il faut que je travaille sur les lampes pour avoir 5000 lm comme stipulé sur les doc.

On aura une séquence (gamma 20mn) pour expérimenter c'est un très bon début.
Après avec un arduino comme tu a , avec sd embarqué, on peut envisager plusieurs séquences a télécharger avec un UP/DOWN.

Très bon travail Bluedragon.
A+
PMEmail Poster
Top
Ecrit le: Jeudi 20 Octobre 2016 à 22h53 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Hello,

Ok super nouvelle donc. A voir à l'usage si ça fonctionne bien, notamment à la transition entre deux séquences (là où on passe à l'index suivant, on lit le tableau puis on refait des calcul).
il faudrait que j'arrive à mesurer le temps qui passe entre la fin d'une sequence et la prise en compte de la nouvelle sequence pour évaluer s'il est nécessaire d'optimiser (ou pas). Je regarderais ça quand j'implémenterai le PROGMEM (qu'il faut que je mesure en terme de performance aussi). Si le PROGMEM n'est pas trop pénalisant à utiliser, alors toutes les sequences du fichier Excel (ou presque), tiendront dans un seul programme Arduino (puisque le PROGMEM permettra de stocker en zone program les informations). Il manquera alors plus qu'à définir quel programme dérouler avant l'upload sur l'Arduino. ça libera comme ça la SRAM, mais en contrepartit, il faut rappatrier la données stockée en PROGMEM vers des variables de la SRAM (la PROGMEM est une sorte de petit disque dur wink.png ).

N'hésites pas à publier quelles LED tu utilises et où tu les as acheté. ça peut intéresser du monde (et moi par la même occasion wink.png )


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
Ecrit le: Vendredi 21 Octobre 2016 à 22h58 Posted since your last visit
Quote Post


Expert(e)
******

Groupe: Membres
Messages: 3939
Membre n°: 10047
Inscrit le: 07/11/2011



Bonjour dufoindufoin,

Voici le code Arduino intégrant l'ensemble des séquences et optimisé pour n'utiliser que très peu de SRAM.

Code disponible sur le drive :
https://drive.google.com/open?id=0B3VZSpIAF...cHFhODZxLWpoU0U

Je viens de vérifier et celà semble fonctionner. Il ne restera plus qu'à faire les mesures de temps pour voir s'il y a besoin d'optimiser, mais en gros, tu possède tout l'AJNA dans ce petit fichier à uploader sur Arduino. Dingue non ? smile.png

CODE
Compiling 'Hypnagogia' for 'Arduino Ethernet'

Program size: 5 426 bytes (used 17% of a 32 256 byte maximum) (0,48 secs)
Minimum Memory Usage: 219 bytes (11% of a 2048 byte maximum)

Uploading 'Hypnagogia' to 'Arduino Ethernet' using 'COM4'
The upload process has finished.


17% de PROGMEM utilisé, grâce aux conditions préprocesseur
11% de la SRAM, grâce à la lecture à la volée et au besoin de PROGMEM

je suis content de moi ! smile.png


--------------------
« No matter where you are, Look for the brightest star, Believe it is true, My soul is smiling at you", FastWalkers
PM
Top
  Ecrit le: Samedi 22 Octobre 2016 à 08h48 Posted since your last visit
Quote Post


Passionné(e)
*****

Groupe: Membres
Messages: 53
Membre n°: 10415
Inscrit le: 05/10/2013



Bonjour BlueDragon.

BRAVO.

Tu peut être content de toi, cela marche très bien.

De mon coté, j'ai commandé 8 leds cms 10w et une 50w (4€ le tout, mais il faut attendre ).
J'ai des éclairages de plafond de bureaux à led 35w mais sous 35v, j'ai essayé et cela marche bien, tout ce que j'utilise c'est des fonds de tiroir.

Pour info:

Mosfet d'ambiance RFP25N06L sans radiateur
mosfet Flash IRF3709 sans radiateur
Led GW6DMD30XFC 3000k 3800lm 35v i=0.95A

J'ai essayé ambiance avec un halogène 12v 50w mais là il fait un radiateur sur le mos car il monte en T°.

Merci.
A+

PMEmail Poster
Top
0 utilisateur(s) sur ce sujet (0 invités et 0 utilisateurs anonymes)
0 membres:

Topic OptionsPages: (9) « Première ... 2 3 [4] 5 6 ... Dernière » Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.3317 ]   [ 12 queries used ]   [ GZIP activé ]