After several trial and error if finely got my DMD + DHT22 + arduino eleven working showing scrolling temperature. It took about 5 days with help from members on the freetronics forum.
// DHT22>DMD temperature display// Jed Hodson 2013 floatt;// holds temperature valueStringfinalString;// used to hold final sentence to display on DMD// connect the HUMID: to 5V, GND and D3#include "DHT.h"DHTdht(3,DHT22);// for Freetronics DMD#include <SPI.h> #include <DMD.h> #include <TimerOne.h> #include "SystemFont5x7.h"#include "Arial_black_16.h"#define DISPLAYS_ACROSS 1 // you could have more than one DMD in a row#define DISPLAYS_DOWN 1DMDdmd(DISPLAYS_ACROSS,DISPLAYS_DOWN);voidScanDMD()// required for DMD{dmd.scanDisplayBySPI();}intround5(floatn){floata;intb;a=((n/0.50)+0.5);b=int(a);b=b*0.50;returnb;}voiddrawText(StringoldString){//Clear the paneldmd.clearScreen(true);//Select font//dmd.selectFont(System5x7);dmd.selectFont(Arial_Black_16);charnewString[256];intsLength=oldString.length();oldString.toCharArray(newString,sLength+1);dmd.drawMarquee(newString,sLength,(32*DISPLAYS_ACROSS)-1,0);longstart=millis();longtimer=start;longtimer2=start;booleanret=false;while(!ret){if((timer+40)<millis()){//Select speedret=dmd.stepMarquee(-1,0);timer=millis();}}}voidcreateTextTemp()// this mashes up all the temprature data into text {finalString=" ";// wipe the sentence out for special cases (below)finalString=finalString+"It's ";// add the list of numbers from -10.50 to 55.50if(t<=-10.50){finalString=finalString+"COLD ";}if(t==-10.00){finalString=finalString+"-10 ";}if(t==-9.50){finalString=finalString+"-9.5 ";}if(t==-9.00){finalString=finalString+"-9.0 ";}if(t==-8.50){finalString=finalString+"-8.5 ";}if(t==-8.00){finalString=finalString+"-8 ";}if(t==-7.50){finalString=finalString+"-7.5 ";}if(t==-7.00){finalString=finalString+"-7 ";}if(t==-6.50){finalString=finalString+"-6.5 ";}if(t==-6.00){finalString=finalString+"-6 ";}if(t==-5.50){finalString=finalString+"-5.5 ";}if(t==-4.50){finalString=finalString+"-4.5 ";}if(t==-4.00){finalString=finalString+"-4 ";}if(t==-3.50){finalString=finalString+"-3.5 ";}if(t==-3.00){finalString=finalString+"-3 ";}if(t==-2.50){finalString=finalString+"-2.5 ";}if(t==-2.00){finalString=finalString+"-2 ";}if(t==-1.50){finalString=finalString+"-1.5 ";}if(t==-1.00){finalString=finalString+"-1 ";}if(t==0.00){finalString=finalString+"0 ";}if(t==0.50){finalString=finalString+"0.5 ";}if(t==1.00){finalString=finalString+"1 ";}if(t==1.50){finalString=finalString+"1.5 ";}if(t==2.00){finalString=finalString+"2 ";}if(t==2.50){finalString=finalString+"2.5 ";}if(t==3.00){finalString=finalString+"3 ";}if(t==3.50){finalString=finalString+"3.5 ";}if(t==4.00){finalString=finalString+"4 ";}if(t==4.50){finalString=finalString+"4.5 ";}if(t==5.00){finalString=finalString+"5 ";}if(t==5.50){finalString=finalString+"5.5 ";}if(t==6.00){finalString=finalString+"6 ";}if(t==6.50){finalString=finalString+"6.5 ";}if(t==7.00){finalString=finalString+"7 ";}if(t==7.50){finalString=finalString+"7.5 ";}if(t==8.00){finalString=finalString+"8 ";}if(t==8.50){finalString=finalString+"8.5 ";}if(t==9.00){finalString=finalString+"9 ";}if(t==9.50){finalString=finalString+"9.5 ";}if(t==10.00){finalString=finalString+"10 ";}if(t==10.50){finalString=finalString+"10.5 ";}if(t==11.00){finalString=finalString+"11 ";}if(t==11.50){finalString=finalString+"11.5 ";}if(t==12.00){finalString=finalString+"12 ";}if(t==12.50){finalString=finalString+"12.5 ";}if(t==13.00){finalString=finalString+"13 ";}if(t==13.50){finalString=finalString+"13.5 ";}if(t==14.00){finalString=finalString+"14 ";}if(t==14.50){finalString=finalString+"14.5 ";}if(t==15.00){finalString=finalString+"15 ";}if(t==15.50){finalString=finalString+"15.5 ";}if(t==16.00){finalString=finalString+"16 ";}if(t==16.50){finalString=finalString+"16.5 ";}if(t==17.00){finalString=finalString+"17 ";}if(t==17.50){finalString=finalString+"17.5 ";}if(t==18.00){finalString=finalString+"18 ";}if(t==18.50){finalString=finalString+"18.5 ";}if(t==19.00){finalString=finalString+"19 ";}if(t==19.50){finalString=finalString+"19.5 ";}if(t==20.00){finalString=finalString+"20 ";}if(t==20.50){finalString=finalString+"20.5 ";}if(t==21.00){finalString=finalString+"21 ";}if(t==21.50){finalString=finalString+"21.5 ";}if(t==22.00){finalString=finalString+"22 ";}if(t==22.50){finalString=finalString+"22.5 ";}if(t==23.00){finalString=finalString+"23 ";}if(t==23.50){finalString=finalString+"23.5 ";}if(t==24.00){finalString=finalString+"24 ";}if(t==24.50){finalString=finalString+"24.5 ";}if(t==25.00){finalString=finalString+"25 ";}if(t==25.50){finalString=finalString+"25.5 ";}if(t==26.00){finalString=finalString+"26 ";}if(t==26.50){finalString=finalString+"26.5 ";}if(t==27.00){finalString=finalString+"27 ";}if(t==27.50){finalString=finalString+"27.5 ";}if(t==28.00){finalString=finalString+"28 ";}if(t==28.50){finalString=finalString+"28.5 ";}if(t==29.00){finalString=finalString+"29 ";}if(t==29.50){finalString=finalString+"29.5 ";}if(t==30.00){finalString=finalString+"30 ";}if(t==30.50){finalString=finalString+"30.5 ";}if(t==31.00){finalString=finalString+"31 ";}if(t==31.50){finalString=finalString+"31.5 ";}if(t==32.00){finalString=finalString+"32 ";}if(t==32.50){finalString=finalString+"32.5 ";}if(t==33.00){finalString=finalString+"33 ";}if(t==33.50){finalString=finalString+"33.5 ";}if(t==34.00){finalString=finalString+"34 ";}if(t==34.50){finalString=finalString+"34.5 ";}if(t==35.00){finalString=finalString+"35 ";}if(t==35.50){finalString=finalString+"35.5 ";}if(t==36.00){finalString=finalString+"36 ";}if(t==36.50){finalString=finalString+"36.5 ";}if(t==37.00){finalString=finalString+"37 ";}if(t==37.50){finalString=finalString+"37.5 ";}if(t==38.00){finalString=finalString+"38 ";}if(t==38.50){finalString=finalString+"38.5 ";}if(t==39.00){finalString=finalString+"39 ";}if(t==39.50){finalString=finalString+"39.5 ";}if(t==40.00){finalString=finalString+"40 ";}if(t==40.50){finalString=finalString+"40.5 ";}if(t==41.00){finalString=finalString+"41 ";}if(t==41.50){finalString=finalString+"41.5 ";}if(t==42.00){finalString=finalString+"42 ";}if(t==42.50){finalString=finalString+"42.5 ";}if(t==43.00){finalString=finalString+"43 ";}if(t==43.50){finalString=finalString+"43.5 ";}if(t==44.00){finalString=finalString+"44 ";}if(t==44.50){finalString=finalString+"44.5 ";}if(t==45.00){finalString=finalString+"45 ";}if(t==45.50){finalString=finalString+"45.5 ";}if(t==46.00){finalString=finalString+"46 ";}if(t==46.50){finalString=finalString+"46.5 ";}if(t==47.00){finalString=finalString+"47 ";}if(t==47.50){finalString=finalString+"47.5 ";}if(t==48.00){finalString=finalString+"48 ";}if(t==48.50){finalString=finalString+"48.5 ";}if(t==49.00){finalString=finalString+"49 ";}if(t==49.50){finalString=finalString+"49.5 ";}if(t==50.00){finalString=finalString+"50 ";}if(t==50.50){finalString=finalString+"50.5 ";}if(t==51.00){finalString=finalString+"51 ";}if(t==51.50){finalString=finalString+"51.5 ";}if(t==52.00){finalString=finalString+"52 ";}if(t==52.50){finalString=finalString+"52.5 ";}if(t==53.00){finalString=finalString+"53 ";}if(t==53.50){finalString=finalString+"53.5 ";}if(t==54.00){finalString=finalString+"54 ";}if(t==54.50){finalString=finalString+"54.5 ";}if(t==55.00){finalString=finalString+"55 ";}if(t==55.50){finalString=finalString+"55.5 ";}if(t>=55.50){finalString=finalString+"HOT ";}finalString=finalString+"*C ";}voidsetup(){dht.begin();// for DMDTimer1.initialize(5000);Timer1.attachInterrupt(ScanDMD);dmd.clearScreen(true);}voidloop(){// get the temperature and round it to nearest 5t=dht.readTemperature();t=round5(t);// now create the text to display on the DMDcreateTextTemp();// now send the text to the DMDdrawText(finalString);}
Comments