Arduino contrôlée Sunrise Alarm Clock

il s’agit d’une mise à jour au microcontrôleur pour mon bleu Simulateur aube LED Alarm Clock.  Auparavant, il utilisait un Atmel ATMEGA8-16PI nécessitant un programmeur d’Atmel.  Ici, j’ai mis à jour afin qu’il utilise un Arduino Uno.  Étant donné que l’ONU est basée sur une puce similaire, j’ai pu réutiliser le code pour accéder aux interruptions pour conduire un contrôleur PWM à 16 bits.  Même si vous n’êtes pas intéressé par la construction d’un simulateur d’aube, vous pourriez trouver le code PWM 16 bits utiles.

Fonctionne sur tout le Atmetl, que le simulateur d’aube commencé à recevoir des erreurs intermittentes, qui a abouti à des flashs lumineux de lumière pendant le cycle de lever du soleil au lieu d’une augmentation progressive.  C’était sans doute du bruit supplémentaire depuis le réveil du Soleil.  Je n’avais plus un accès facile à un programmeur d’Atmel, a donc décidé de mettre à jour à un Arduino pour les changements à venir plus faciles.

Le câblage est en grande partie le même que précédemment, sauf le signal provenant du Soleil est lu par une entrée plutôt que d’une entrée numérique analogique.  J’ai décidé, à l’aide de l’entrée analogique rendrait le contrôleur plus résistant au bruit que la ma solution précédente à l’aide d’interruptions.   Code de l’Arduino est ci-dessous :


long previousMillis = 0 ;        va stocker la dernière fois mise à jour de LED
intervalle long = 1000 ;           intervalle à laquelle mettre à jour (en millisecondes)

void setup() {}
initialiser la broche numérique en tant que sortie.
pinMode (sortie 9) ;

éteindre la LED sur la carte Arduino
pinMode (13, sortie) ;
digitalWrite (13, faible) ;

Timer1 fait PWM ~ 16-bit
TCCR1A = _BV (COM1B1) | _BV (WGM11) | _BV (COM1A1) ;
TCCR1B = _BV (WGM13) | _BV (WGM12) | _BV (CS10) ;

ICR1 = 65535 ;
Démarrer le cycle PWM à 100 %
OCR1A = 65535 ;

cela allume pour le débogage
Serial.Begin(9600) ;

}

void loop() {}
unsigned long currentMillis = millis() ;
longtemps y = 0 ;
longue sortie [100], u ;
int i ;

prendre 1000 lectures sur l’entrée analogique
pour (i = 0; i < 1000; i ++) {}
y = y + analogRead(A0) ;
}

sortie [0] = 65535 / (1 + exp(-1*0.00002275*(y-500000))) ;

la sortie moyenne, donc il n’est pas sauter partout
pour (i = 9; J’ai > 0; i--) {}
sortie [i] = sortie [i-1] ;
}
u = 0 ;
pour (i = 0; i < 10; i ++) {}
u = u + sortie [i] ;
}

Assurez-vous que la valeur de sortie ne va pas au-dessus de 65535
Si u (u/10 > 65535) = 655350 ;
définir le facteur de marche PWM
OCR1A = u/10 ;

Si (currentMillis - previousMillis > intervalle) {}
enregistrer la dernière fois que la sortie a été imprimée
previousMillis = currentMillis ;
sortie ce qui se passe pour le débogage
Serial.println(OCR1A) ;
Serial.println(y) ;
}
}
J’ai déterminé la fonction exponentielle qui correspondait à la sortie des LED pour les lampes à incandescence par le œil et de tâtonnements.  Un graphique illustrant la montée exponentielle par rapport à une augmentation linéaire est attaché.  

Mots clés: Arduino, LED, Bleu, Radio-réveil

Articles Liés

Childs Neopixel Sunrise Alarm Clock

Childs Neopixel Sunrise Alarm Clock

Il s'agit d'un simple réveil qui bascule entre un jour et une image de nuit pour enfants qui ne peuvent pas dire le temps savent quand il est acceptable de se lever le matin. Il a été jeté ensemble par nécessité quand j'ai réalisé que j'avais laissé
Sleep Cycle Alarm Clock avec détecteur de mouvement

Sleep Cycle Alarm Clock avec détecteur de mouvement

Motivation :J'ai voulu en quelque sorte améliorer le standard radio-réveil, alors j'ai fait celui qui vous réveille doucement par seulement vous réveiller quand vous n'êtes pas dans votre sommeil profond. Un avantage supplémentaire est qu'il joue la
Arduino contrôlée hélicoptère

Arduino contrôlée hélicoptère

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). L'objectif de ce cours était pour nous enseigner la créativité, l'ingéniosité et l'application prati
Laser Galvo - Arduino contrôlée

Laser Galvo - Arduino contrôlée

Arduino contrôlée laser galvo. La servocommande de miroirs diriger le laser UV laissant une traînée phosphorescente sur la feuille de vinyle glow-in-the-dark.Posté sur notes.robives.comÉtape 1 :À partir d'une feuille de vinyle lumineux d'eBay et poin
Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Le problème: vous voulez restreindre le temps lorsque votre animal de compagnie est autorisé à aller à l'extérieur. C'est peut-être parce que le quartier n'est pas sans danger pour votre chat ou votre petit chien pendant la nuit (maraude coyotes vien
Arduino contrôlée de fenêtre pour chat

Arduino contrôlée de fenêtre pour chat

je soumets cette instructable le défi de l'Arduino. N'oubliez pas de voter !Mon voisin a eu un petit problème avec son chat. Il veulent de sortir et de revenir trop souvent à l'intérieur. Habituellement, il ouvre juste la fenêtre de sa cuisine et nou
Autocollant de fenêtre numérique (Arduino contrôlée)

Autocollant de fenêtre numérique (Arduino contrôlée)

un autocollant de taille matrice de LED qui affiche des images en séquence à partir d'une carte SD, pour produire une animation signe ou « vitrophanie ». Arduino contrôlée ! Inclut également le code de Windows, Mac et Linux pour la conversion des fic
GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

mises à jourGOduino II a été présenté sur dangerousprototypes.com07/04/2012, j'ai ajouté une diapositive de budget pour les lecteurs qui sont demandent où j'ai obtenu mon budget < 20 $ pour le GOduino II.INTRODUCTIONLe GOduino II est un contrôleur pr
Arduino contrôlée CNC / 3D imprimante hybride

Arduino contrôlée CNC / 3D imprimante hybride

Dame Nature fait... Nous construisons des.BuildersBot fusibles impression 3D & fraisage CNC dans rêve d'un générateur "3dprintingindustry.com"Le BuilderBot est une machine de conception ouverte, qui utilise OpenLogiciels et matériels ouvert.
Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Voici la partie 2 de l'Arduino contrôlée Robot L293D.Partie 2 comprend Sensors.This infrarouge fait partie d'une série d'instructables conduisant à un adepte de la ligne Robot.QRD1114 capteur infrarouge reliée à ArduinoÉtape 1: Câblage du capteur inf
Arduino contrôlée variateur de lumière

Arduino contrôlée variateur de lumière

Avertissement : Certaines personnes essaient de construire ce avec un opto-coupleur avec zerocrossing coz droit « c'est mieux » ? Certains sont même dit, dans les magasins d'électronique, il est préférable d'utiliser tel un opto-coupleur. MAL. Ceci f
Arduino contrôlée Servo Robot (Serbes)

Arduino contrôlée Servo Robot (Serbes)

quoi de mieux pour commencer à expérimenter avec open source microcontrôleurs ( Arduino ), puis en construisant votre propre robot source ( CC (SA-de)) ?Que faire avec votre serbe ?(Voici) - comment connecter votre serbe à l'internet et le lecteur su
Arduino contrôlée minuterie de cuisine

Arduino contrôlée minuterie de cuisine

Chacun d'entre vous doit ont vécu ce que vous avez quelque chose à cuire sur votre gazinière tandis que de l'autre côté vous get occupé à regarder la télévision ou obtenir une conversation profonde que vous réalisez sur la détection d'une odeur qu'il
Arduino contrôlée ATX Power Supply

Arduino contrôlée ATX Power Supply

pouvez un microcontrôleur contrôler sa propre puissance ?  Eh bien presque !Une ATX alimentation, neuf ou d'un vieux PC, est un excellent moyen pour alimenter l'Arduino et autres projets de microcontrôleur.  Qui est couvert dans plusieurs ' ibles tel