P10 Panel sürmek
  • Merhaba arkadaşlar,

    P10 panel ile saat ve sıcaklığı gösteren panel yapmak istiyorum.
    arduino ile p10 led panel nasıl sürülür.

    teşekkürler.
  • P10 panel tek renk mi yoksa RGB(3 renk) mi ? Tek renk ise tam adamına rastladın :) Yardımıcı oluruz hertürlü. Kolay gelsin.
  • merhaba bana tek renk ile ilgili bilgi lazım yardımcı olabilirmisiniz.
  • https://github.com/freetronics/DMD bu linkten led panel kütühanesini(DMD) indir.Yanda "download zip" butonu var zip olarak indir

    https://code.google.com/p/arduino-timerone/downloads/detail?name=TimerOne-r11.zip&can=2&q= bu linkten timerone kütüphanesini indir

    Daha sonra bu kütüpheneleri klasörü ile birlikte C:\Program Files (x86)\Arduino\libraries içine at

    DMD kütühanesi led panel kütüphanesi. Timerone yazdığın yazılımda periyod belirlemek için. DMD kütüphanesi içersinde 2 adet arduino led panel uygulaması örneği var. Şimdilik bunlara bi bak daha sonra bilgi lazım olursa yorum atarsın
  • Merhabalar hocam Arif ben...Arduino ile P10 panele yazı yazma konusunda tecrübelisiniz galiba bilgi alışverişinde bulunmak istiyorum mümkünse.Kayan yazı yazmak istiyorum ama nasıl bağlantı yapılacak nasıl bir kod lazım hiçbir bilgim yok yardımcı olabilirmisiniz?
  • http://www.freetronics.com.au/products/dot-matrix-display-32x16-red#.VMZ7UC6b29c

    linke tıklarsan aşağıda "resources" başlığı altında "DMDCON DMD Connector board Schematic (PDF)" adlı linke tıkla. Arduino ile p10 panel bağlantı şeması var. Hangi ucu hangi uca bağlayacağın yazıyor. Ayrıca yukarıda belirttiğim kütüphanleri indirip C:\Program Files (x86)\Arduino\libraries klasörünün içine at. DMD kütüphanesinin içinde 2 adet p10 panel-arduino uygulaması var. Uygulamadaki komutları kurcalayarak ne işe yaradıklarını anlayabilirsin. Eğer anlamazsan hangi komutun ne işe yaradığını yazarsın.

    Uzun süredir foruma girmedim. Ama bundan sonra daha sık girerim. Problemin olursa yazarsın yardımcı oluruz.
  • Herkese merhaba. Elimde Arduino uno ve p10 panel var ama arduino uygulamalarında çok tecrübem yok. yukarıda bahsettiğiniz gibi kütüphaneye DMD ve timerone klasörlerini ekledim. bağlantı şemasındaki gibi bağlantıları yaptım ama C G D pinleri boşta kaldı ve çalışmadı. (panelde birkaç led nokta gibi dağınık yanıyor,ilgili örnekleri yükleme esnasında sönüyor ve sorun aynen devam ediyor)
    c g d pinleri uno'da yok P10 panel uygulaması uno'da yapılamaz mı?
    arduino usb üzedinden güc alıyor, p10 panel ayrı bir güç kaynağından, sorun bu mu?
    (yani uno'nun güç girişinden ayrı bir adaptör ile beslenmesi mi gerekir?)
    Bu konuda tecrübesi olan arkadaşlar yardımcı olursa çok sevinirim.
  • kendi soruma cevap veriyorum. sorun bağlantı kablosundaymış. Kütüphaneleri ekleyip bağlantıları yapınca sorunsuz çalışıyor. C G D pinleri boşta kalıyor ne işe yaradığını öğrenemedim. arduino gücünü usb den ya da harici adaptörden alsa da çalışıyor.
  • merhabalar bnde p10 16x32 lik led panel ve arduino uno var bn arduinodn okuduğum sensörü p10 da görmek istiyorum yapan varsa devre şeması ve kodlarıyla gönderebilir mi dot matrix değil normal p10 ve tf 41367 var nasıl bi bağlantı kurabilirim arduino ile p10 u ?
  • Merhaba,

    Aşağıdaki adreslerde örnekler var bunlar sana yardımcı olur.

    kolay gelsin.


    https://github.com/freetronics/DMD

    http://www.freetronics.com.au/pages/using-your-freetronics-dmd#.VwICYHp-ZCM
  • teşekkürler bakarım
  • örneğin bn bi sensör okuyup yazdırmak istiyorum p10 a arduinodan ve p10 kütüphanesini okuyacağım sensörün koduna eklemem gerek ama nasıl ekleyip uyarlayacağımı bilmiyorum biliyorsanız örnek atabilirmisisniz?
  • örnek olarak saat ve sıcakılığı yazan kod.


    void panel_yaz(String islem,String yazi,String yazi2)
    {
    if (islem=="saat")
    {
    dht_oku();
    tempC = dtostrf(sic, 2, 1, buffer);
    dmd.selectFont(System5x7);
    tempC.toCharArray(c, 3);
    dmd.drawString( 1, 0, c, 2, GRAPHICS_NORMAL );
    yaz = "C ";
    yaz.toCharArray(c, 3);
    dmd.drawString( 19, 0, c, 2, GRAPHICS_NORMAL );
    yaz = saat_oku();
    yaz.toCharArray(b, 6);
    dmd.drawString( 1, 8, b, 6, GRAPHICS_NORMAL );
    Serial.println(yaz);
    }
  • #include


    #include
    #include
    #include "Arial_black_16.h"
    #include
    #include
    #include "SystemFont5x7.h"
    #include
    #include "TimerOne.h"
    #include
    /* you can remove the fonts if unused */
    #define DISPLAYS_ACROSS 1
    #define DISPLAYS_DOWN 1
    DMD dmd( DISPLAYS_ACROSS , DISPLAYS_DOWN );
    #define PM25 0
    #define PM10 1
    int pin[] = {50,51};
    unsigned long starttime;
    unsigned long sampletime_ms = 30000;
    unsigned long triggerOn[2];
    unsigned long triggerOff[2];
    unsigned long lowpulseoccupancy[] = {0,0};
    float ratio[] = {0,0};
    float count[] = {0,0};
    boolean value[] = {HIGH,HIGH};
    boolean trigger[] = {false, false};
    void ScanDMD()
    {
    dmd.scanDisplayBySPI();
    }

    void setup(){
    Serial.begin(9600);
    Timer1.initialize( 5000 );
    Timer1.attachInterrupt( ScanDMD );
    pinMode(pin[PM25],INPUT); //Listen at the designated PIN
    wdt_enable(WDTO_8S);
    starttime = millis(); //Fetching the current time
    dmd.clearScreen( true );
    }



    void drawText( String dispString ){
    dmd.clearScreen( true );
    dmd.selectFont( Arial_Black_16 );
    char newString[256];
    int sLength = dispString.length();
    dispString.toCharArray( newString, sLength+1 );
    dmd.drawMarquee( newString , sLength , ( 32*DISPLAYS_ACROSS )-1 ,0);
    long start=millis();
    long timer=start;
    long timer2=start;
    boolean ret=false;
    while( !ret ){
    if ( ( timer+20 ) < millis() ) {
    ret=dmd.stepMarquee( -1 , 0 );
    timer=millis();
    }
    }
    }

    void loop(){
    value[PM25] = digitalRead(pin[PM25]);
    value[PM10] = digitalRead(pin[PM10]);

    if(value[PM25] == LOW && trigger[PM25] == false) {
    trigger[PM25] = true;
    triggerOn[PM25] = micros();
    }
    if(value[PM25] == HIGH && trigger[PM25] == true) {
    triggerOff[PM25] = micros();
    lowpulseoccupancy[PM25] += (triggerOff[PM25] - triggerOn[PM25]);
    trigger[PM25] = false;
    }
    if(value[PM10] == LOW && trigger[PM10] == false) {
    trigger[PM10] = true;
    triggerOn[PM10] = micros();
    }
    if(value[PM10] == HIGH && trigger[PM10] == true) {
    triggerOff[PM10] = micros();
    lowpulseoccupancy[PM10] += (triggerOff[PM10] - triggerOn[PM10]);
    trigger[PM10] = false;
    }
    wdt_reset();
    if ((millis()-starttime) > sampletime_ms)//Checking if it is time to sample
    {
    ratio[PM25] = lowpulseoccupancy[PM25]/(sampletime_ms*10.0);
    count[PM25] = 1.1*pow(ratio[PM25],3)-3.8*pow(ratio[PM25],2)+520*ratio[PM25]+0.62;
    ratio[PM10] = lowpulseoccupancy[PM10]/(sampletime_ms*10.0);
    count[PM10] = 1.1*pow(ratio[PM10],3)-3.8*pow(ratio[PM10],2)+520*ratio[PM10]+0.62;
    count[PM25] -= count[PM10];

    // Begin mass concentration calculation
    const char concentration[] = {0,0};
    double pi = 3.14159;
    double density = 1.65*pow(10,12);
    double K = 3531.5;
    // PM10
    double r10 = 2.6*pow(10,-6);
    double vol10 = (4/3)*pi*pow(r10,3);
    double mass10 = density*vol10;
    concentration[PM10] = (count[PM10])*K*mass10;
    // PM2.5
    double r25 = 0.44*pow(10,-6);
    double vol25 = (4/3)*pi*pow(r25,3);
    double mass25 = density*vol25;
    concentration[PM25] = (count[PM25])*K*mass25;
    // End of mass concentration calculation

    // Begin printing to Serial
    Serial.print("PM10 : ");
    Serial.print(concentration[PM10]);
    Serial.println(" ug/m3");
    Serial.print("PM10 Count : ");
    Serial.print(count[PM10]);
    Serial.println(" pt/cf");
    dmd.drawString (0, 1, String(concentration[PM10]), 8, 32);


    // Serial.print("PM2.5 : ");
    // Serial.print(concentration[PM25]);
    //Serial.println(" ug/m3");
    // Serial.print("PM2.5 Count: ");
    // Serial.print(count[PM25]);
    // Serial.println(" pt/cf");
    // Serial.println("");


    // Resetting for next sampling
    lowpulseoccupancy[PM25] = 0;
    lowpulseoccupancy[PM10] = 0;
    starttime = millis();
    wdt_reset();
    }


    }

    bu kodu aktaramıyorum led panele
    dmd.drawString (0, 1, String(concentration[PM10]), 8, 32); burada hata veriyor ne yazabilirim ?
  • string olarak değil char dizi şeklinde göndermelisin.

    dmd.drawString (0, 1, concentration[PM10], 8, 32);

    olarak denermisin.

    örnekte var.

    dht_oku();
    tempC = dtostrf(sic, 2, 1, buffer);
    dmd.selectFont(System5x7);
    tempC.toCharArray(c, 3);
    dmd.drawString( 1, 0, c, 2, GRAPHICS_NORMAL );
    yaz = "C ";
    yaz.toCharArray(c, 3);
    dmd.drawString( 19, 0, c, 2, GRAPHICS_NORMAL );
  • Serial.print(rtc.getDateStr(3));
    Serial.println(rtc.getTimeStr(2));
    Serial.print(humidity, 1);
    Serial.print(temperature, 1);

    bu komutları tarih 5 saniye, saat 15 saniye, nem ve sıcaklığı da 5'er saniye nasıl yazdırabilirim? hazır kodları kullanarak yaptığımda saati 30 saniye gösteriyor ama hem aynı saniyeyi gösteriyor. saniye değişmiyor. 30 saniye sonra değişiyor.
    yardımcı olursanız sevinirim. iyi çalışmalar.
  • Merhaba arkadaşlar. Elimde p10 panel ve arduino mega var. Internetten dmd kutuphanesini indirdim hatta panelin demosunu da calistirmistim.Ama su anda ayni baglantilari yaptigimda panelde bi kac led yaniyor sadece.arduinoda 9. pine bagladigim kabloyu oynattigimda panel calisiyor.pin bozuk olabilir diye pini degistirdim yine calismadi.bu sefer arduinonun kendi icerisindeki blink ornegini denedim paneli taktigim tum pinlerde ve hepsinde sorunsuz calisti.sorun nerede olabilir?
  • p10 panel kablosu takıldığı yerle arduinoyu bağlandığı yerde takla atıyor. bu yüzden şemalarda verilen bağlantı olmuyor. şöyle yapmanız gerekiyor. çıkıntılı taraf sağda iken ve pin yuvaları size bakıyorken sağdaki en alt pin D9 üstü GND. sol en alt D6, üstü D7, bir boş, 4.pin D13, D8 ve D11. diğer pinler boş.
  • Teşekkürler aynı bağlantıları yaptım ama yine çalışmadı. En alt pini D9 a değil D10 a bağlayınca sorun çözüldü.Sanırım sorun bendeki karttaydı.
  • Merhaba,
    elimde arduino uno var.karta 2 tane buton bağlı her butona basıldığında millis değerini tutup bu iki millis değeri arasındaki farkı p10 panele yazdırmak istiyorum.Bunun için hangi kodu kullanabilirim?
  • Butona basinca sadece milis degerini yazan kodu yaz gerisine yardim edecem ben sana
  • int buton1 = 3;
    int buton2 = 4;

    int buton_durum1 = 0;
    int buton_durum2 = 0;

    unsigned long time1;
    unsigned long time2;

    void setup()
    (
    pinMode (buton1,INPUT);
    pinMode (buton2,INPUT);
    )

    void loop()
    (
    buton_durum1 = digitalRead (buton1);
    buton_durum2 = digitalRead (buton2);

    if ( buton_durum1 == HIGH )
    ( time1 = millis(); )

    if ( buton_durum2 ==HIGH )
    ( time2 = millis(); )

    Serial.print (time2 -time1);

    )


    Bu iki millis degeri arasindaki farki panele yazdirmak istiyorum.
  • p10 panel orneği olarak şu kod guzel duruyor http://www.elektrohobim.com/index.php/arduino/projelerim/44-arduino-ile-p10-modul-ile-kayan-yazi

    kodun bazı kutuphaneleri eksik olabilir dmd kutuphanesini araştır bu sayfanın başına tonla kod var onları da gözden geçir
  • panele string olarak saat bilgisini yazan kod
    yaz = saat_oku();
    yaz.toCharArray(b, 6);
    dmd.drawString( 1, 8, b, 6, GRAPHICS_NORMAL );

    float tipinin panele yazan kod
    yaz= dtostrf(sic, 2, 1, buffer);
    dmd.selectFont(System5x7);
    yaz.toCharArray(c, 3);
    dmd.drawString( 1, 0, c, 2, GRAPHICS_NORMAL );

    time bilgisinide bunlara ayarlayabilirsin.

    yaptığım panel uygulaması

    http://i.hizliresim.com/nMvENN.jpg
  • Sorun Çözüldü (=
  • Sayın hasansavun resimdeki çalışmanızın şema, kod, bağlantı bilgilerinin tüm dosyalarını bizlerle paylaşabilir misiniz? Saygılar...
  • Merhaba yukarıda verilen bütün açıklama ve önerileri okudum. DMD ve TimerOne kütüphanelerini ardunio ya ekledim ve panel bağlantılarını da eksiksiz yaptım ancak panel e güç verdiğimde karışık ve anlamsız ışık kümeleri (bir çok led anlamsız yanıyor) oluşmakta ne yaptıysam DMD kütüphanesi içindeki örnekleri çalıştıramadım. Her seferinde aynı ışık kümelerini elde etmekteyim. Sorun ne olabilir acaba? Şunu belirteyim c# ve java dillerini biliyorum ve Ardunio programlamada da fena değilim. Bu bağlamda önerilerinizi bekliyorum.(yani kütüphane nasıl eklenir veya kod üzerinde nasıl oynanır az çok anlıyorum.)
  • biraz geç oldu ama

    dmd örnek kütüphanesi çalışıyor.
    ilk denemelerimde benimde anlamsız şeyler çıkıyordu. bağlatıları yanlış yaptığımı fark ettim.

    sayac kodu aşağıda


    #include < SPI.h> //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
    #include < DMD.h> //
    #include < TimerOne.h> //
    #include " SystemFont5x7.h"

    //Fire up the DMD library as dmd
    #define DISPLAYS_ACROSS 1
    #define DISPLAYS_DOWN 1
    DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
    float a;
    char b[5];
    char k[6];
    int s;
    String yaz="Sayac";


    void ScanDMD()
    {
    dmd.scanDisplayBySPI();
    }


    void setup(void)
    {
    Timer1.initialize( 5000 );
    Timer1.attachInterrupt( ScanDMD );
    dmd.clearScreen( true );
    Serial.begin(9600);
    s=0;
    }


    void loop(void)
    {
    dmd.clearScreen( true );
    a = 210;
    s=s+1;
    //a = analogRead(A5);
    //a = (5.0*a*100.0)/1024.0;
    Serial.println(a);
    //dtostrf(s, 4, 2, b);
    dtostrf(s, 5, 0, k);
    yaz.toCharArray(b, 6);
    dmd.selectFont(SystemFont5x7);
    dmd.drawString( 1, 8, k, 6, GRAPHICS_NORMAL );
    dmd.drawString( 1, 0, b, 6, GRAPHICS_NORMAL );
    delay(1000);
    }



  • arkadaşlar arduino due için p10 panel de kayar yazı yazmak istiyorum yardımcı olurmusunuz ?
  • neyıne yardımıcı olacagız hocam şemamı programmı nedir? programsa yukarıda var yazdında çalışmıyormu ne oluyor onu bı de. due yı de cok mu aradın elınde bır uno yokmuydu. zamanlamalar due de duzgun çalışmayabılır.
  • ders için due almamız gerek hocamız oyle istedi.Yukarıdaki programı derledik fakat error compiling for board ardunio due programming port hatası veriyor ve bağlantı şekli için de yardımcı olursanız sevinirim
  • Harika bir konu ve yazışma olmuş arkadaşlar. 1 veya 2 adet P10 ile uygulama tamam. Peki daha fazlası için ne yapabiliriz? Yukarıda bahsi geçti mi bilemiyorum ama yan yana 4, alt alta da 4 adet için var mı arduino ile kullanabileceğim bir çoğullama veya kontrol kartı?
  • Bu arada yukarıdaki örneği bende UNO + p10 LED Panel ile uygulamaya çalışsamda bazı arkadaşların sonradan çözdükleri ama benim hala çözemediğim, bazı ledler karışık şekilde yanıyor ve ne yaptı isem düzeltemedim. UNO nun 6-7-8-9-11-13. pinlerini header sokette, çıkıntısı sağda ve giriş yuvaları bana bakacak şekli ile 9. pini header soketin sol üst 1. yuvasına, sağ üstten ise sırayla 6-7-boş-13-8-11-boş-boş şekilde takıyorum.
    Sizce nerede yanlış yapıyorum.
    İndirdiğim DMD-master ve TimerOne-r11 klasörlerini ilgili menüden yüklediğim gibi Program Files (x86) içerisine de atıyorum.
  • Kendi soruma cevap veriyorum. Header in bağlantısı p10 panel tarafında yer değişiyormuş. SOL taraftaki 8 pin, SAĞ Tarafa. UNO nun 6-7-8-9-11-13. pinlerini header sokette, çıkıntısı sağda ve giriş yuvaları bana bakacak şekli ile 9. pini header soketin SAĞ üst 1. yuvasına, SOL üstten ise sırayla 6-7-boş-13-8-11-boş-boş şekilde takıyorum. ÇALIŞTI.
  • #include < SPI.h>
    #include < DMD.h>
    #include < TimerOne.h>
    #include "SystemFont5x7.h"
    #include "Arial_black_16.h"
    #include "DHT.h"

    #define DHTPIN 2
    #define DHTTYPE DHT22
    DHT dht(DHTPIN, DHTTYPE);

    #define DISPLAYS_ACROSS 2
    #define DISPLAYS_DOWN 1
    DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);

    void ScanDMD()
    {
    dmd.scanDisplayBySPI();
    }

    void setup(void)
    {

    dht.begin();

    Timer1.initialize( 5000 );
    Timer1.attachInterrupt( ScanDMD );

    dmd.clearScreen( true );

    }

    void loop(void){
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    if (isnan(t) || isnan(h)) {
    byte b;
    // display some text
    dmd.clearScreen( true );
    dmd.selectFont(System5x7);
    for (byte x=0;x for (byte y=0;y dmd.drawString( 2+(32*x), 1+(16*y), "Fail", 4, GRAPHICS_NORMAL );
    dmd.drawString( 2+(32*x), 9+(16*y), "Read", 4, GRAPHICS_NORMAL );
    }
    }
    }
    else {

    byte b;

    dmd.clearScreen( true );
    dmd.selectFont(System5x7);
    for (byte x=0;x for (byte y=0;y dmd.drawString( 2+(32*x), 1+(16*y), "TEMP", 4, GRAPHICS_NORMAL );
    dmd.drawString( 2+(32*x), 9+(16*y), "(t)", 5,GRAPHICS_NORMAL );
    }
    }
    delay(2000);
    }
    }

    -------------------------------------------------
    Display de
    TEMP
    (t) F

    yazısı çıkıyor
    istediğim ölçtüğüm t ve h değerlerini P10 ekranına yazdırmak
    yardımınızı rica ediyorum
    Saygılarımla
    Turgay OLGAY
  • Arkadaşlar iyi günler ben arduino r3 ile rgb p10 32x16 panel sürmek istiyorum kütüphanesini indirdim ancak derlerken "Error compiling for board Arduino/Genuino Uno." hatası veriyor ve simulasyon için elimde bir şema yok yardımcı olabilirseniz sevinirim.
  • İyi günler, DMD kütüphanesini kullandım fakat parlaklık ayarını yapmam gerekiyor. Bunun için noe yi pwm ile kullansam sorun olur mu?
  • p10 panelciler bişe yazsın ben de merak ediyorum
  • Bende 2 tane p10 paneli Arduino ya bağlamak istiyorum ama olmuyor. Bilen var mı?
  • Arduino dan 3 tane p10 led tabelaya yazı yazdırmaya çalışıyorum. fakat heryerde kayan yazı var. bana sabit durması lazım. Nasıl yapabilirim? Bilen varsa yardımcı olsun lütfen.
  • p10 panel kullanmadım ama biraz araştırdım birbirinin arkasına bağlanıyor ve komutları ortak işliyorlar. youtube da grafikli şeyler de yapılmış p10 komut setını bulup deneme yapmak lazım her panele tek tek komut vererek kaydırma veya sabit gosterı yapılabılmesı lazım.
  • Arkadaşlar merhaba. 3 tane p10 led tabelaya sabit yazı yazdırmam gerekiyor. Bilen var mı? Bir miktar mükafat olarak ödeme de vereceğim.Lütfen yardım edin.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.