Miroir thermosensibles Infinity (2 / 6 étapes)

Étape 2: Capteur de température d’un seul fil + Code

Je m’y attendais le capteur est l’aspect le plus redoutable de ce projet, mais il s’agissait d’une chose non morts-jeu sur me faire sentir comme un homme des cavernes haut-fonctionnement. Le DS18S20 est extrêmement facile à brancher et le code que j’ai trouvé sur bildr a été assez facile pour moi de comprendre malgré étant traitement analphabètes.

Je me suis arrangé les composants sur un montage d’essai suivant le schéma ci-dessus, puis j’ai téléchargé le fichier zip disponible ici (http://bildr.org/2011/07/ds18b20-arduino/) et suivre le processus en deux étapes nécessaire pour imprimer les données de température pour le moniteur de la série.  Parce que je fournis le code mis à jour le capteur ci-dessous, toutefois, il vous suffit Placez le dossier « Un fil » dans la bibliothèque de l’Arduino et vous devrait être bon d’aller.

Pour obtenir le fondu de LED, j’avais besoin pour stocker les deux dernières valeurs de comparaison et de faire que j’ai fait une copie de la fonction getTemp(), renomme et appelé les deux fonctions en tandem avec un décalage entre les deux. Le code fini (avec LED assignés et fade établi) n’est pas aussi optimal qu’il pourrait l’être, cependant il semble fonctionner parfaitement.

Notez également quelles broches sont assignés aux couleurs et s’assurer que cela se reflète sur le montage d’essai.

#define REDPIN1 10
#define GREENPIN1 9
#define BLUEPIN1 11

#define REDPIN2 5
#define GREENPIN2 6
#define BLUEPIN2 3

#define FADESPEED 8 / / supérieure à ralentir en font

#include < OneWire.h >
flotteur tempData [1] ;
flotteur tempDataPrev [1] ;

int DS18S20_Pin = 2 ; Broche DS18S20 Signal numérique 2

Température à puce d’e/s
OneWire ds(DS18S20_Pin) ;  sur la broche numérique 2

void setup(void) {}
Serial.Begin(9600) ;

pinMode (REDPIN1, sortie) ;
pinMode (GREENPIN1, sortie) ;
pinMode (BLUEPIN1, sortie) ;

pinMode (REDPIN2, sortie) ;
pinMode (GREENPIN2, sortie) ;
pinMode (BLUEPIN2, sortie) ;
}

Violet valeur 200, 0, 255
Rouge valeur 255, 0, 0
Bleu la valeur 0, 0, 255

void loop(void) {}

flotteur de température = getTemp() ;
Delay(1000) ;
float temperaturePrev = getTempPrev() ;

int i ;
int r1, g1, b1 ;
int r2, g2, b2 ;

pour (int i = 0; i < 1; i ++) {}
tempDataPrev [i] = temperaturePrev;}

pour (int i = 0; i < 1; i ++) {}
tempData [i] = température;}

analogWrite (BLUEPIN1, 255) ;
analogWrite (REDPIN1, 255) ;
analogWrite (GREENPIN1, 0) ;

analogWrite (BLUEPIN2, 255) ;
analogWrite (REDPIN2, 255) ;
analogWrite (GREENPIN2, 0) ;

Si (tempDataPrev [0] == {tempData[0])}

valeurs initiales
analogWrite (BLUEPIN1, 255) ;
analogWrite (REDPIN1, 255) ;
analogWrite (GREENPIN1, 0) ;

analogWrite (BLUEPIN2, 255) ;
analogWrite (REDPIN2, 255) ;
analogWrite (GREENPIN2, 0) ;
}

Si (tempDataPrev [0] < tempData[0]) {}

analogWrite (BLUEPIN2, 255) ;
analogWrite (REDPIN2, 255) ;
analogWrite (GREENPIN2, 0) ;

du violet au bleu à violet

pour (r1 = 255 ; r1 > 0; r1--) {}
analogWrite (REDPIN1, r1) ;
Delay(FADESPEED);}

pour (r1 = 0; r1 < 256 ; r1 ++) {}
analogWrite (REDPIN1, r1) ;
Delay(FADESPEED);}
}

Si (tempDataPrev [0] > {tempData[0])}

analogWrite (BLUEPIN1, 255) ;
analogWrite (REDPIN1, 255) ;
analogWrite (GREENPIN1, 0) ;

du violet au rouge, au violet

pour (b2 = 255 ; b2 > 0; b2--) {}
analogWrite (BLUEPIN2, b2) ;
Delay(FADESPEED);}

pour (b2 = 0; b2 < 256 ; b2 ++) {}
analogWrite (BLUEPIN2, b2) ;
Delay(FADESPEED);}

} }

flotteur getTempPrev() {}
renvoie la température d’un DS18S20 en degrés Celsius

octet de données [12] ;
addr octet [8] ;

Si (! ds.search(addr)) {}
pas plus de capteurs sur chaîne, réinitialiser recherche
DS.reset_search() ;
retour -1000 ;
}

Si (OneWire::crc8 (addr, 7)! = {addr[7])}
Serial.println (« le CRC est non valide!") ;
retour -1000 ;
}

Si (addr [0]! = 0 x 10 & & addr [0]! = 0 x 28) {}
Serial.Print ("la périphérique n’est pas reconnu") ;
retour -1000 ;
}

DS.Reset() ;
DS.Select(addr) ;
DS.Write(0x44,1) ; lancer la conversion, avec puissance parasite sur à la fin

octet présent = ds.reset() ;
DS.Select(addr) ;
DS.Write(0xBE) ; Bloc-notes de lecture

pour (int i = 0; j’ai < 9; i ++) {/ / nous avons besoin de 9 octets
données [i] = ds.read() ;
}

DS.reset_search() ;

octet MSB = données [1] ;
octet LSB = data [0] ;

float tempRead = ((MSB << 8) | LSB) ; à l’aide de deux compliment
float TemperatureSum = tempRead / 16 ;

Return TemperatureSum ;
}

flotteur getTemp() {}
renvoie la température d’un DS18S20 en degrés Celsius
Delay(2000) ;
octet de données [12] ;
addr octet [8] ;

Si (! ds.search(addr)) {}
pas plus de capteurs sur chaîne, réinitialiser recherche
DS.reset_search() ;
retour -1000 ;
}

Si (OneWire::crc8 (addr, 7)! = {addr[7])}
Serial.println (« le CRC est non valide!") ;
retour -1000 ;
}

Si (addr [0]! = 0 x 10 & & addr [0]! = 0 x 28) {}
Serial.Print ("la périphérique n’est pas reconnu") ;
retour -1000 ;
}

DS.Reset() ;
DS.Select(addr) ;
DS.Write(0x44,1) ; lancer la conversion, avec puissance parasite sur à la fin

octet présent = ds.reset() ;
DS.Select(addr) ;
DS.Write(0xBE) ; Bloc-notes de lecture

pour (int i = 0; j’ai < 9; i ++) {/ / nous avons besoin de 9 octets
données [i] = ds.read() ;
}

DS.reset_search() ;

octet MSB = données [1] ;
octet LSB = data [0] ;

float tempRead = ((MSB << 8) | LSB) ; à l’aide de deux compliment
float TemperatureSum = tempRead / 16 ;

Return TemperatureSum ;
}

Articles Liés

Miroir LED infini

Miroir LED infini

Il s'agit d'un miroir de LED design « Infinity » que j'ai construit plusieurs mois en arrière. Un vieux copain de l'armée de la mine a trouvé une belle 4 pieds par 2 1/2 pied cadre que quelqu'un a jeter, et nous avons décidé de faire une grande versi
Contrôleur de miroir LED infini, 32 LED, plusieurs modèles de

Contrôleur de miroir LED infini, 32 LED, plusieurs modèles de

Mise à jour : ce kit est interrompu s'il vous plaît voir la nouvelle version, 8 Channel LED Controller v.3, les fichiers de développement sont encore disponibles pour construire cette version.Comme un circuit simple que possible. Un 12F675 contrôle u
Comment faire une boîte à miroir infini

Comment faire une boîte à miroir infini

Vous aurez besoinAccès à un coupeur de laser - vous aurez besoin vraiment cela parce que la plupart des pièces sont faites avec un coupe au laser.Accès à un kit de soudure – vous devez vraiment un kit de soudure. Si vous n'en avez pas ou n'avez pas a
Infini miroir horloge

Infini miroir horloge

Depuis que mes bandes de LED RVB adressables (WS2812B) venaient d'Aliexpress, j'ai été fasciné par LED projets. Suite à mon succès avec mon horloge LED Charlieplexed, j'ai voulu créer quelque chose avec plus de Jazz...Tout en naviguant sur google ima
Arduino-Programmable LED infini miroir

Arduino-Programmable LED infini miroir

Êtes-vous fatigué de voir les éléments de salle qui semblent avoir une profondeur finie ?Peut-être vous devriez envisager de construire votre propre miroir de Infinity LED programmables par Arduino !Cette illusion d'optique est un eye-catcher et offr
32 LED, LED infini miroir motifs sélectionnables, encadrement de qualité

32 LED, LED infini miroir motifs sélectionnables, encadrement de qualité

ce Instructable a été actualisé avec meilleures informations et meilleure construction, veuillez consulter le 10 « x 10 » LED infini miroir InstructableCette Instructable couvre construire mon disponible complet 8 « x 8 » 32 LED infini miroir Kit ou
8 x 8 LED Array multiplexés miroir infini

8 x 8 LED Array multiplexés miroir infini

Un petit peu différent de votre miroir infini ordinaire. À l'aide d'un morceau de miroir acrylique pour le miroir arrière, 8 rangées de 8 trous sont percées dans une grille. Une LED est ensuite placé dans chaque trou et filaire vers le haut afin que
Infini miroir Arc réacteur Prop

Infini miroir Arc réacteur Prop

Just un autre pilier de réacteur arc, ainsi que des dizaines d'autres déjà faites et présentées sur ce site.Un particulier se démarque cependant, avec elle voilà base miroir central infini.Ce projet m'a coûté moins de 5 $, mais surtout parce que la p
18" Kit de miroir infini LED rondes

18" Kit de miroir infini LED rondes

ce Instructable couvre la construction d'un Chromation systèmes 18" Kit de miroir rond Infinity, utilisant un 48 canaux Mono / 16 contrôleur de canaux RGB LED à anode commune de contrôle 5mm LED RGB, 32 x le long de l'extérieur et un x 16 en option p
Cube LED RGB infinie

Cube LED RGB infinie

Le 8 x 8 x 8 LED cube projet publié sur le site Instructables a été très détaillée et encore regardé assez simple pour moi non seulement de compléter, mais ajouter des améliorations substantielles ainsi.Voici un tutoriel sur comment j'ai construit mo
Infini miroir horloge Making

Infini miroir horloge Making

Il une horloge de miroir infini est un très amusant processus. Tout le monde peut le faire, et une fois que vous avez terminé il vous serez étonné !Permet donc commencer !Voici une vidéo étape par étape :Ce que vous aurez besoin :1. une vieille horlo
Miroir de l’illusion d’optique. (miroir infini)

Miroir de l’illusion d’optique. (miroir infini)

Hé, voulais vous montrer quelque chose de différent cette fois. Il s'agit de miroir infini. Il crée une illusion d'optique, et je vais vous montrer comment il fonctionne et comment faire un vous-même dans la vidéo ci-dessous.Aussi cool de regarder.[W
Horloge DIY de miroir infini

Horloge DIY de miroir infini

dans ce instructable je vais vous montrer comment construire votre propre horloge de miroir infini !C'est vraiment génial, bon marché et facile, aucune arduino ou soudure nécessaire ! J'ai utilisé un réveil Mickey Mouse de Disneyland. Il était vieux
Contrôlé par Arduino RGB LED infini miroir

Contrôlé par Arduino RGB LED infini miroir

Mise à jour 22/11/2013: Merci à tous ceux qui ont voté pour ce projet dans le concours de microcontrôleur ! Il fut l'un des trois gagnants du premier prix.Mise à jour 17/09/2013: Merci à tous ceux qui ont voté pour ce projet dans le concours de l'Ard