Read more
Ini adalah sebuah posting catatan dari grup arduino indonesia , merupakan media penyimpan digital yang saya buat untuk mengabadikan proyek DMD yang dibuat oleh saudara Aziz Kurosaki
berikut ini adalah link Library DMD yang dipergunakan oleh Aziz
http://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
berikut ini adalah source code yang dibuat oleh mas aziz kurosaki
#include <DMD.h>
#include <DejaVuSansBold9.h>
DMD display(3,1);
ISR(TIMER1_OVF_vect){
display.refresh();
}
void inaik(String text){
for(int x=0;x<display.height();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,96,(display.height()/2)-x,0);
display.swapBuffers();
delay(80);
}
}
void oturun(String text){
for(int x=0;x<display.height();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,display.width(),x,0);
display.swapBuffers();
delay(80);
}
}
void ikanan(String text){
for(int x=0;x<display.width();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(x,0,display.width(),16,0);
display.swapBuffers();
delay(30);
}
}
void okiri(String text){
for(int x=0;x<display.width();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(x,0,0,16,0);
display.swapBuffers();
delay(30);
}
}
void otengah(String text){
for(int x=0;x<=(display.width()/2)+1;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(48-x,0,49+x,16,0);
display.drawLine(48-x,0,48-x,9);
display.drawLine(49+x,0,49+x,9);
display.swapBuffers();
delay(30);
}
}
void itengah(String text){
for(int x=0;x<=(display.width()/2)+1;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,48-x,16,0);
display.drawFilledRect(49+x,0,96,16,0);
display.drawLine(48-x,0,48-x,9);
display.drawLine(49+x,0,49+x,9);
display.swapBuffers();
delay(30);
}
}
void imdown(String text){
for(int x=0;x<=(display.height()/2);x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,-8+x,text);
display.swapBuffers();
delay(80);
}
}
void obulat(String text){
for(int x=0;x<=(display.width()/2)+5;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledCircle(48,8,x,0);
display.drawCircle(48,8,x);
display.swapBuffers();
delay(50);
}
}
void masuk(byte urut,String text){
switch (urut){
case 0 : itengah(text);
break;
case 1 : inaik(text);
break;
case 2 : ikanan(text);
break;
case 3 : imdown(text);
break;
}
}
void keluar(byte urut,String text){
switch (urut){
case 0 : okiri(text);
break;
case 1 : otengah(text);
break;
case 2 : oturun(text);
break;
case 3 : obulat(text);
break;
}
}
void setup(){
display.enableTimer1();
display.setDoubleBuffer(1);
display.setFont(DejaVuSansBold9);
}
void loop(){
String text="Aziz Kurosaki";
masuk (random(4),text);
delay (500);
keluar (random(4),text);
delay(500);
}
hasil video nya adalah sebagai berikut :
sedangakan source code jam digital dengan menggunakan arduino dan display modul p10 adalah sebagai berikut :
#include <DMD.h>
#include <SystemFont5x7.h>
#include <Arial_Black_16.h>
#include <Wire.h>
#include<Sodaq_DS3231.h>
#include <DejaVuSansBold9.h>
DMD display(3,1);
byte ldtk,lmnt,ljam,jam,mnt,dtk,count;
ISR(TIMER1_OVF_vect){
display.refresh();
}
String konvert(byte nilai){
if(nilai<10){ return "0"+String(nilai); }
else { return String(nilai);}
}
void draw(byte pos){
(count<3)?count++:count=0;
if (pos==0){
for (byte x=0;x<16;x++){
display.drawFilledRect(11,0,29,16,0);
display.drawText(11,0-x,String (konvert(ljam)));
display.drawText(11,16-x,String (konvert(jam)));
display.swapBuffersAndCopy();
delay(15);
}
}
if (pos==1){
for (byte x=0;x<16;x++){
display.drawFilledRect(40,0,58,16,0);
display.drawText(40,0-x,String (konvert(lmnt)));
display.drawText(40,16-x,String (konvert(mnt)));
display.swapBuffersAndCopy();
delay(15);
}
}
if (pos==2){
display.drawFilledRect(30,0,37,16,0);
display.drawFilledRect(59,0,66,16,0);
display.drawFilledCircle(33,3,count);
display.drawFilledCircle(33,12,count);
display.drawFilledCircle(62,3,count);
display.drawFilledCircle(62,12,count);
if(count>0){
display.drawFilledCircle(33,3,count-1,0);
display.drawFilledCircle(33,12,count-1,0);
display.drawFilledCircle(62,3,count-1,0);
display.drawFilledCircle(62,12,count-1,0);}
for (byte x=0;x<16;x++){
display.drawFilledRect(68,0,97,16,0);
display.drawText(68,0-x,String (konvert(ldtk)));
display.drawText(68,16-x,String (konvert(dtk)));
display.swapBuffersAndCopy();
delay(15);
}
}
}
void drawaziz(){
char text[14]={"AZIZ_KUROSAKI"};
display.setFont(SystemFont5x7);
for (byte x=0;x<sizeof(text);x++){
for(byte y=0;y<(x*6)+8;y++){
display.clear();
for(byte z=0;z<sizeof(text);z++){
if (z<x){
display.drawChar((z*6)+8,0,text[z]);
}
}
display.drawChar(y,0,text[x]);
display.swapBuffers();
delay(8);
}
}
for (byte x=sizeof(text);x>0;x--){
for(byte y=(x*6)+8;y<97;y++){
display.clear();
for(byte z=0;z<sizeof(text);z++){
if (z<x-1){
display.drawChar((z*6)+8,0,text[z]);
}
}
display.drawChar(y,0,text[x-1]);
display.swapBuffers();
delay(8);
}
}
}
void setup(){
display.enableTimer1();
display.setDoubleBuffer(1);
Wire.begin();
rtc.begin();
drawaziz();
display.clear();
display.setFont(Arial_Black_16);
DateTime now=rtc.now();
ljam=now.hour()-1;
lmnt=now.minute()-1;
ldtk=now.second()-1;
}
void loop(){
DateTime now=rtc.now();
jam=now.hour();
mnt=now.minute();
dtk=now.second();
if (ldtk!=dtk){
draw(2);
ldtk=dtk;
}
if (lmnt!=mnt){
draw(1);
lmnt=mnt;
}
if (ljam!=jam){
draw(0);
ljam=jam;
}
}
hasil video jamd digital dengan P10 dan arduino adalah sebagai berikut :
berikut ini adalah link Library DMD yang dipergunakan oleh Aziz
http://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
berikut ini adalah source code yang dibuat oleh mas aziz kurosaki
#include <DMD.h>
#include <DejaVuSansBold9.h>
DMD display(3,1);
ISR(TIMER1_OVF_vect){
display.refresh();
}
void inaik(String text){
for(int x=0;x<display.height();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,96,(display.height()/2)-x,0);
display.swapBuffers();
delay(80);
}
}
void oturun(String text){
for(int x=0;x<display.height();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,display.width(),x,0);
display.swapBuffers();
delay(80);
}
}
void ikanan(String text){
for(int x=0;x<display.width();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(x,0,display.width(),16,0);
display.swapBuffers();
delay(30);
}
}
void okiri(String text){
for(int x=0;x<display.width();x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(x,0,0,16,0);
display.swapBuffers();
delay(30);
}
}
void otengah(String text){
for(int x=0;x<=(display.width()/2)+1;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(48-x,0,49+x,16,0);
display.drawLine(48-x,0,48-x,9);
display.drawLine(49+x,0,49+x,9);
display.swapBuffers();
delay(30);
}
}
void itengah(String text){
for(int x=0;x<=(display.width()/2)+1;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledRect(0,0,48-x,16,0);
display.drawFilledRect(49+x,0,96,16,0);
display.drawLine(48-x,0,48-x,9);
display.drawLine(49+x,0,49+x,9);
display.swapBuffers();
delay(30);
}
}
void imdown(String text){
for(int x=0;x<=(display.height()/2);x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,-8+x,text);
display.swapBuffers();
delay(80);
}
}
void obulat(String text){
for(int x=0;x<=(display.width()/2)+5;x++){
display.clear();
display.drawText((display.width()-(text.length()*5))/2,0,text);
display.drawFilledCircle(48,8,x,0);
display.drawCircle(48,8,x);
display.swapBuffers();
delay(50);
}
}
void masuk(byte urut,String text){
switch (urut){
case 0 : itengah(text);
break;
case 1 : inaik(text);
break;
case 2 : ikanan(text);
break;
case 3 : imdown(text);
break;
}
}
void keluar(byte urut,String text){
switch (urut){
case 0 : okiri(text);
break;
case 1 : otengah(text);
break;
case 2 : oturun(text);
break;
case 3 : obulat(text);
break;
}
}
void setup(){
display.enableTimer1();
display.setDoubleBuffer(1);
display.setFont(DejaVuSansBold9);
}
void loop(){
String text="Aziz Kurosaki";
masuk (random(4),text);
delay (500);
keluar (random(4),text);
delay(500);
}
hasil video nya adalah sebagai berikut :
sedangakan source code jam digital dengan menggunakan arduino dan display modul p10 adalah sebagai berikut :
#include <DMD.h>
#include <SystemFont5x7.h>
#include <Arial_Black_16.h>
#include <Wire.h>
#include<Sodaq_DS3231.h>
#include <DejaVuSansBold9.h>
DMD display(3,1);
byte ldtk,lmnt,ljam,jam,mnt,dtk,count;
ISR(TIMER1_OVF_vect){
display.refresh();
}
String konvert(byte nilai){
if(nilai<10){ return "0"+String(nilai); }
else { return String(nilai);}
}
void draw(byte pos){
(count<3)?count++:count=0;
if (pos==0){
for (byte x=0;x<16;x++){
display.drawFilledRect(11,0,29,16,0);
display.drawText(11,0-x,String (konvert(ljam)));
display.drawText(11,16-x,String (konvert(jam)));
display.swapBuffersAndCopy();
delay(15);
}
}
if (pos==1){
for (byte x=0;x<16;x++){
display.drawFilledRect(40,0,58,16,0);
display.drawText(40,0-x,String (konvert(lmnt)));
display.drawText(40,16-x,String (konvert(mnt)));
display.swapBuffersAndCopy();
delay(15);
}
}
if (pos==2){
display.drawFilledRect(30,0,37,16,0);
display.drawFilledRect(59,0,66,16,0);
display.drawFilledCircle(33,3,count);
display.drawFilledCircle(33,12,count);
display.drawFilledCircle(62,3,count);
display.drawFilledCircle(62,12,count);
if(count>0){
display.drawFilledCircle(33,3,count-1,0);
display.drawFilledCircle(33,12,count-1,0);
display.drawFilledCircle(62,3,count-1,0);
display.drawFilledCircle(62,12,count-1,0);}
for (byte x=0;x<16;x++){
display.drawFilledRect(68,0,97,16,0);
display.drawText(68,0-x,String (konvert(ldtk)));
display.drawText(68,16-x,String (konvert(dtk)));
display.swapBuffersAndCopy();
delay(15);
}
}
}
void drawaziz(){
char text[14]={"AZIZ_KUROSAKI"};
display.setFont(SystemFont5x7);
for (byte x=0;x<sizeof(text);x++){
for(byte y=0;y<(x*6)+8;y++){
display.clear();
for(byte z=0;z<sizeof(text);z++){
if (z<x){
display.drawChar((z*6)+8,0,text[z]);
}
}
display.drawChar(y,0,text[x]);
display.swapBuffers();
delay(8);
}
}
for (byte x=sizeof(text);x>0;x--){
for(byte y=(x*6)+8;y<97;y++){
display.clear();
for(byte z=0;z<sizeof(text);z++){
if (z<x-1){
display.drawChar((z*6)+8,0,text[z]);
}
}
display.drawChar(y,0,text[x-1]);
display.swapBuffers();
delay(8);
}
}
}
void setup(){
display.enableTimer1();
display.setDoubleBuffer(1);
Wire.begin();
rtc.begin();
drawaziz();
display.clear();
display.setFont(Arial_Black_16);
DateTime now=rtc.now();
ljam=now.hour()-1;
lmnt=now.minute()-1;
ldtk=now.second()-1;
}
void loop(){
DateTime now=rtc.now();
jam=now.hour();
mnt=now.minute();
dtk=now.second();
if (ldtk!=dtk){
draw(2);
ldtk=dtk;
}
if (lmnt!=mnt){
draw(1);
lmnt=mnt;
}
if (ljam!=jam){
draw(0);
ljam=jam;
}
}
hasil video jamd digital dengan P10 dan arduino adalah sebagai berikut :
15 Reviews
Gan bisa kirim coding jam digital ya.
ReplyDeleteKreatifgame@gmail.com
Display.refresh nya masalah mas, bisa tau salahnya dimana ?
ReplyDeleteini lib nya http://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
Deletegan ko terjadi eror di display.refresh(); apa ada yang salah ya agan pake arduino berapa
ReplyDeleteini lib nya http://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
DeleteHello. Can you give p10 ardunio button and connection diagram
ReplyDeleteturkey /ankara
ReplyDeleteboleh minta librarynya gan
ReplyDeletehttp://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
Deletelibrarynya kok gak bisa di download mas
ReplyDeletehttp://www.4shared.com/zip/vL6WzxU9ba/DMDaziz.html
DeleteKEREEENNNN OMMM, Langsung bisa d verifity
ReplyDeleteKlo menggunakan 1 led p10 programnya gimana gan?
ReplyDeletefind --> DMD display(3,1);
Deletechange to --> DMD display(1,1);
gak bisa di download gan librarynya
ReplyDeleteSilakan dikomentari