Radyo Amatörü TELSiZCiLER için bir site

Ana Sayfa => Bir sorum var! *** => Konuyu başlatan: TA3IHD - 23 Aralık 2017, 11:05:52

Başlık: Ardunio Nano- si5351
Gönderen: TA3IHD - 23 Aralık 2017, 11:05:52
Yazı biraz uzun, ancak, evde HF alıcı-verici QRP yapan arkadaşların sonuna kadar okumasını tavsiye ederim.
Sorumu hemen sorayım:

**1- Ardunio programlanıyormu?
**2-(Bence elbette programlanıyor) Nasıl?  pic enegreleri için malum bir aparatımız var, bundada böylebir aparatmı var, yoksa doğrudan bilgisayaramı bağlanıyor.
**3- Veya benim bilmediğim başka bir metot mu var?
 
Arkadaşlar, henüz ardunio'yu kavrayamadım, ancak bir programlanabilir "control unit" olduğunu düşünüyorum.

Tıpkı DDS de kullandığımız pic16F84  veya 16F628  gibi.  Bu entegreleri programlayıp DDS e kumanda edip, DDS in ürettiği VFO sinyalini program dahilinde istediğimiz gibi değiştirebildiğimiz gibi.

Tıpkı bunun gibi, programlanabilir "pic" entegreler yerine sanırım "Ardunio" ları  kullanıyoruz. Bunlarıda programlıyoruz.

Yukarıda yazdığım girişten sonra aşağıda paylaştığım "ardunio- si5351" ikilisinin, kullandığımız "ad9850 DDS" inden daha kapsamlı olduğunu gördüm.
Şöyle: Bu ikili aynı anda ve birbirinden bağımsız hem VFO sinyali, hem BFO sinyali üretiyor, bu BFO sinyalini değiştirebildiğimiz gibi LSB,USB,CW, AM modlarına ayarlayabiliyoruz. LU5DJV nin devresinde her ne kadar ekranda LSB-USB-CW görünsede sadece ekran görüntüsü olarak kalıyor.
Burada ise VFO ve BFO birbirinden tamamen bağımsız üretiliyor ve kumanda ediliyor.
Söz konusu internet adresinde detaylı bilgiler  verilmiş. Ardunio Nano ve si5351 ikilisi oldukça basit ve ucuz görünüyor.
Ardunio'nun programıda mevcut.  cevap ve görüşlerinizi bekliyorum. 73

https://vk3hn.wordpress.com/2017/02/02/arduino-and-si5351-dds-vfobfo/
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3ALS - 23 Aralık 2017, 13:17:12
Kullanımda en önemli olan şey programın işlevselliği.
 Si5351a birbirinden bağımsız üç adet çıkışı var, kare dalga üretiyor ve diyot mikserleri doğrudan sürecek kadar güçlü. Bu bir avantaj, zira kaliteli alıcıların girişinde mutlaka yüksek seviyeli, diyot yada fet ile yapılmış pasif mikser kullanmak gerekiyor.
Ben ut5qbc tarafından tasarlanmış olan sentezleyicinin ver.4 sürümünden iki adet yaptım. en sıkıntılı yanı zor lehimlenmesi. çünkü havya ile lehimlerken kolayca bozulabiliyor.
değerlendirmelerim burada;
http://www.telsizciler.org/index.php/topic,37546.msg128280.html#msg128280
Selamlar...


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 23 Aralık 2017, 13:47:53
Hulusi Bey,

Arduino modelleri, üzerinde genellikle Atmel mikrokontrolcü bulunduran kartlardır. Üretimde mikrokontrolcüye bootloader yüklenmiş olduğundan,
modeline göre seri port veya usb üzerinden programlayabilirsiniz. Bazı modellerinde (mini pro gibi) usb/ttl devresi olmadığından, yine piyasada bulunan usb-ttl çeviriciler ile seri port üzerinden programlayabilirsiniz.

aşağıdaki linkten arduino IDE'yi indirip kurmanız ve ayarlardan, seri port ve kullandığınız modeli seçmeniz, program yüklemek için yeterlidir.

https://www.arduino.cc/en/Main/Software

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 12 Ocak 2018, 14:34:20
arkadaşlar, resimlerde "arduino nano"  ve  "si5351"  ikilisini aldım.
Arduino programını kurdum "RESİMDE" görülen görüntüde, program görüntüsünde, görüntünün  sol üstünde 5 adet kutucuk var, en soldaki, ok aşağı kutucuğu tıklayınca program yüklendi görünüyor. DOĞRUMUDUR? YÜKLEME BÖYLE Mİ OLUYOR?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 12 Ocak 2018, 14:35:57
.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 12 Ocak 2018, 17:07:11

sol taraftan 2.butona basacaksınız. (sağa ok)
Menüden, Sketch/upload komutunu  veya CTRL + U kısayolunu kullanabilirsiniz.

Aşağıda (resimde uploading yazan yerde) "yükleniyor..." yazacak, bittiğinde de "yüklendi" yazacak. (bendeki windows ingilizce olduğundan, bundan tam emin değilim)
Ama alttaki alanda kırmızı bir yazı görmemeniz lazım.

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 12 Ocak 2018, 22:22:14
Murat bey, malesef aynı işlemi yapınca "karta yüklenirken sorun oluştu" ibaresi çıkıyor. Resimdeki gibi.

Birde yine araçlar menüsünde  port yazıyor, ancak port yazısı silik çıkıyor. yani arduino nun bağlıolduğu portu göremiyormuyuz acaba?
Hangi porta bağlı olduğunu nasıl görürüzacaba?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2NC - 12 Ocak 2018, 22:37:12
Araclar ports kismina geldiginizde mevcut com portlar icinde arduino'nun bagli oldugunu gormeniz lazim
com yazisi silik ise ornegin herhangi bir baglanti olmayan com portu secilmistir programinizda. dogru com portu secin.

ayrica  board (bendeki ingilizce) kismindan dogru model arduino'nun da secili oldugundan emin olun..
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 13 Ocak 2018, 00:39:58
Donatililarda seri port sekmesinden portu gorebilirsiniz. Tabi nano'yu taktiginizda surucusu dogru olarak yuklenmis ise. Genelde otomatik yuklenir ancak yuklenmemisse arduino/driver klasorunu gostererek elle yukleyebilirsiniz.
Oguzhan beyin de soyledigi gibi, arduinodan da, model ve port secmelisiniz.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 14 Ocak 2018, 13:02:25
Arduino programının yükledikten sonra si5351 için  hazırlanmış softwair'i  arduino program sayfasına kopyeledim.
sonra sayfadan arduino nano'yu seçtim, ancak port kısmı silik olduğu için port seçme imkanı yok.
Sonra arduino cihazını USB lerden birine taktım. ancak hani bellek tekarsın, "yükleniyor" yazar, bir süre sonra yüklenir ve bellek çalışmaya başlar ya, bunda öyle bir hareket yok. yalnız, takınca kırmızı led yanıyor. cihaz fabrikasyon aluminyum statik koruyucu tam kapalı paketinde geldi, yırtarak ben açtım ve her işlemde vücudumdaki statik elektriği boşalttım. 
Com1 görünmüyor, yükleme hatası demeye devam ediyor.
yıllardır Pic entegreye program yüklüyorum. Ancak bu olmadı.  Herhalde ardunio'yu müzelik saklayacağız. İnternettende yeterli veri bulamadım. Herhalde insanlar hemen yükleyebiliyor.

Acaba yapmam gereken başka bir şey varmı?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2NC - 14 Ocak 2018, 13:14:24
Programi acmadan once arduino yu baglamaniz gerekiyordu.
Boylece arduino driverini kurar ve arduino programini acmadan bilgisayarin comport kisminda gormeniz gerekirdi.

En kotu ihtimal bilgisayrinizin donanim kimsini acip oradan elle arduino driverini yuklemeniz.
orasi saglikli calistiktan sonra yazilim kismina gecin.

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA4EM - 14 Ocak 2018, 21:43:01
Merhabalar,
Arkadaşlar bu arduino konusu ile bende ilgileniyorum.Bu amacla bir iki devre yapmaya çalıştım.Zaten devrelerin elektronik kısımları zor değil,çünkü arduino kartlarını kullanıyoruz.Ancak kodları yüklerken çok güçlüklerle karşılaştım.Proje sahipleri devre yanında kodlarını da veriyorlar.Hatalımı değilmi bilmiyorum yüklemede sorun çıkıyor.Arduino ile ilgili işlemleride bu arada öğrenmiş olduk herşeyi tam yapıyorum malesef hata alıyorum.Örneklemek gerekirse,Ja2gqp ve ja2nkd japon amatörlerin devreleri var ve ciddi amatörler bunların nano ile yapılmış tft gerek si5351 li gerekse ad9850 li dds vfo lu porojeleri var ama iş kodlamaya gelince fiyasko.çok denedim hata yapma durumunun az olduğunu düşünüyoruM.Bazı daha basit uygulamalarda aynı yöntemi yapıyorum problem çıkmıyor.Anlamış değilim.Proje sahiplerinin kritik bazi manüplasyonları mı var diye düşünmekten kendimi alamıyorum.Selamlar.e.çiçek
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2GC - 15 Ocak 2018, 00:53:47
@Ekrem Çiçek
 sırf bu yüzden üzülüp sinirlenmemek için Arduino'ya bulaşmadım,99 yılından beri Mikrochip PIC ile haşır neşirim tek bir sıkıntım olmadı,Help dosyası aşama aşama gayet açık bir dille anlatıyor.dünya forum gezdim sorunlar ile ilgili tek ana soru göze çarpıyor, ilk soru paraya kıyıp orijinalmi aldın yoksa saç baş yolduran klonmu diye....
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 15 Ocak 2018, 00:54:22
Bilgisayarım; Yönet; Aygıt yöneticisi; USB leri Kaldır... seçeneklerinden bütün USB leri kaldırdım, laptopu kapatıp açınca tekrar kuruldular.  maus, bellek v.s. tekrar tanıdılar, ARDUINO yuda taktım, onuda tanımaya çalıştı ve "sürücü bulunamadı" dedi.

Eğer klondan kaynaklı ise, ben 100tl verip almaktansa pic16F628  veya 84 lere 2,5tl verip devam etmeyi tercih ederim.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2NC - 15 Ocak 2018, 08:43:15
Once driveri kaldirin daha once dediginiz gibi.
daha sonra https://www.arduino.cc/en/Guide/Windows adresinden arduino yazilimini tekrar kurun restart yapin.
Sonrasinda arduinoyu takin.

Bende hic orjinal arduino yok. Hepsi aliexpress cin mali

Bir kere bile klon olusundan kaynakli hicbir sorun yasamadim.


Hicbir projede de kopyalama calistirma asamasinda bir sorunla karsilasmadim.
Kesinlikle pic vs den cok daha kolay bir cihaz oldugunu dusunuyorum.


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 15 Ocak 2018, 10:25:34
@Hulusi Bey,

Arduino sürücüsü genelde otomatik olarak yüklenir.
işletim sistemi, önceki sürücüler, çakışmalar vs. nedeniyle yüklenemediği zamanlar olabilir.

Arduinoyu takın, "sürücü yüklenemedi" yazısını gördüğünüzde;

Donatıları açın, aygıt yöneticisinde başında sarı ünlem bulunan yazıya sağ tıklayarak, "sürücüyü güncelle" yi seçin. Çıkan menüde, alttaki seçimi (manuel yükleme)
seçerek, arduino'yu yüklediğiniz klasör içindeki "driver" klasörünü seçin.

Bunları yaparken arduino'ya başka bir donanım bağlı olmasın.
Gerekirse başka bir usb kablo ile tekrar deneyin.


@Ekrem Bey,
Yüklemek istediğiniz örnekler (özellikle karmaşık olanlar) birden fazla yazılım kütüphanesi kullanıyor olabilir. Şayet bunlar arduino'nun standart kütüphanesinde bulunmuyorsa, sizin ayrıca yüklemeniz/tanıtmanız gerekir. Genelde, spesifik dosyalar projenin içine eklenir ama bazı dosyalar da, arduino ide'si üzerinden, kurulumdan sonra, isteğe bağlı olarak indirilebilir durumdadır.
Örneğin Arduino'nun si5351 için yazılmış bir kütüphanesi varmış ancak bunu ayrıca indirip kurmanız gerekir.

Programı arduino ide'sinde açıp verify veya upload butonuna bastığınızda, çıkan kırmızı hata kodları size neyin eksik olduğunu söyleyecektir.

PIC/Arduino kıyaslaması yanlış olur.


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 15 Ocak 2018, 19:26:10
Oğuzhan ve Murat kardeşlerim, 

Büyük uğraşlarım sonunda arduino yu laptopa tanıttım şöyle: 
İngilizce olarak ardunioyu tanıtamadığımı yazdım, karşıma pek çok sayfa açıldı
Ancak dikkatimi bir sayfa çekti o sayfada USB bağlantı çipinin CH340G olduğu ve bunun driverinin yüklenmesi gerektiği yazılıyordu.
Hemen Driveri yükledim ve arduine yüklendi.
Cihaz şimdi arduino'yu tanıyor.

Ancak arduino programı hala arduino cihazını yüklemiyor.
yani, laptop tanıyor,  program tanımıyor.
Laptopun tanıdığı Arduino yu  Arduino software programına nasıl tanıtırım?

Şöylemi yapmalıyım: Arduino programını kaldırıp sonra tekrar kurup sonra arduinoyu USB ye takıp aynı anda tanımalarınımı sağlamalıyım ?

Az kaldı eminim bu işi başaracağım.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 15 Ocak 2018, 19:38:38
Programı kurcalarken, Biraz önce silik olan PORT koyulaştı, baktım, COM5 yazıyor, hemen programı yüklemek için tıkladım..... veee yüklendi.

********Bir başka sorum daha var:  Arduino ya yüklediğimiz programı silip bir başka program yükleyebilirmiyiz?
Öyle ise nasıl sileceğiz?
   
     Not1: Programın ArduinoYu tanıması şöyle oldu: Taslaklardan" library ekle" seçeneğinden birini seçeyim bakalım ne olacak dedim, bir seçenek tıkladım ve o zaman port açıldı. Sonra kendi programımı kopyaldım ve onu yükledim. acaba dışarıdan bir program çalışırmı???? Bu seçenek "liquid crystal" seçeneği. İlk başta duruyor.
     
     Not2:::: Bu arada  Arduino devamlı statik elektrik önleyen aluminyum paketinin içinde!
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 16 Ocak 2018, 03:44:33
Ekran resmini çektim.

Ancak kendi kütüphanesinden "liquid crystal" i seçtim, sonra altına si5351 in prokramını yapıştırdım. Sanırım yapıştırmak olmuyor. bu programı kütüphaneye eklemek gerekiyor, benim yüklediğim herhalde kendi kütüphanesinden seçtiğim liquid crystal seçeneği.

Programı kütüphaneye eklemenin nasıl yapılacağını biraz deteylı anlatabilirmisiniz?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 16 Ocak 2018, 07:30:16
İki adet "Adafruit si5351 Library" buldum, ancakbunlar kısa,
Birde bunların 20-30 kat büyüğü programlar buldum.
Bu library programa yüklendiğinde sayfanın üstünde programın adı olan si5351 yazıyor,
ancak sürükleyip yapıştırdığım yada kendi file open seçeneğini kullanarak yüklediğim programlarda cihaza yüklenirmi acaba?
https://www.arduinolibraries.info/libraries/adafruit-si5351-library
 
ÖRNEK:  BU BİR ARDUİNO PROGRAMIMI? ( si5351 için yazılmış)

/*! \mainpage si5351 3-band VFO
 *
 * This sketch implements a three band VFO using the SI5351a
 * breakout board from Etherkit.
 *  Features include:
 *  - Operation on a single frequency at a time, push button selected
 *  - Frequency adjustment by rotary encoder. Rate of adjustment is
 *    push button adjustable in 10 to 10000 Hz increments.
 *  - Individual VFOs can be toggled on/off line by a long press of
 *    the selection button.
 *  - All VFOs can be toggled off at once by a long press on the
 *    the frequency increment button.
 *  - OLED display shows currently selected VFO, VFO status, VFO
 *    frequency. The display header is customizable, and shows
 *    current frequency increment.
 *  - Choose your favorite band and frequencies as default start up
 *    values.
 */
 
/**
 * @file
 * @author  Mike Aiello N2HTT <n2htt@arrl.net>
 * @version 1.3
 *
 * @section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * http://www.gnu.org/copyleft/gpl.html
 *
 * @section DESCRIPTION
 *
 * This sketch implements a three band VFO using the SI5351a
 * breakout board from Etherkit. It should run on any AT328
 * Arduino. Required resources are:
 *  - 32k program memory
 *  - 1k variable space
 *  - 2 pins supporting external hardware interrupts
 *  - 2 digital input pins
 *  - I2C bus support for SI5351 and an OLED 128x64 pixel display (0.96")
 *
 * The prototype was tested on:
 *  - Arduino Mega 2560 & Uno R3
 *  - Etherkit SI5351a breakout board
 *  - Bournes mechanical encoder, 24 ppr with momentary contact switch
 *  - SPST momentary pushbutton switch
 *  - SDD1306 I2C OLED display
 *  - 20x4 line LCD with I2C adapter
 *
 * The macros immediately following this description configure all the
 * hardware options for the VFO. Configurable items include:
 *  - Hardware pin assignments
 *  - VFO frequency settings
 *  - Number of VFOs
 *  - Whether to display a heading line
 *  - Range of frequency increments
 *  - Other timing parameters
 *
 * See the include files for other configurable parameters.
 *
 * Libraries used in this sketch are:
 *  - Google U8glib    - interface for the SDD1306 I2C OLED display. This is
 *                       not supplied, but is available here:
 *                       https://code.google.com/p/u8glib/
 *
 *  - F Malpartida
 *    LiquidCrystal_I2C- interface for the 20x4 LCD display with I2C. This is
 *                       not supplied, but is available here:
 *                       https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
 *
 *  - Etherkit SI5351  - interface for the SI5351a clock chip,
 *                       not supplied but available here:
 *                       https://github.com/etherkit/Si5351Arduino
 *
 * Two object wrappers are supplied for the display, and
 * the SI5351. Each wrapper is constructed with a generic
 * abstract base class that defines the methods used by the sketch,
 * and then a hardware specific class that uses the appropriate third
 * party library to implement the methods.
 * This architecture will make it easier to adapt the sketch to use
 * other harware or libraries in the future. The wrappers classes are:
 *
 * Base class       Implementation class(es)
 * VFODefinition    si5351_VFODefinition
 * VFODisplay       SSD1306_U8glib_VFODisplay
 *                  LCD2004_LCDLib_VFODisplay
 *
 * Some notes about program structure:
 * 1. I would have normally included the hardware specific library
 *    includes in the include files containing the hardware specific
 *    classes, but the Arduino IDE did not find them when I did. For
 *    that reason you will see them below in this file, above the local
 *    includes for hardware specific classes.
 * 2. The include files FrequencySelection.h and DeviceInitializations.h
 *    contain sections of in-line c++ code that I moved to separate
 *    files for better readability. Using the include mechanism allows
 *    inserting this code in the main sketch in the proper sequence.
 * 3. The embedded comment blocks in all of the files of this sketch
 *    are compatible with documentation generators like javadoc
 *    and doxygen.
 */
 
/**
 * Uncomment the two lines below to use the LiquidCrystal library
 * with the 20 x 4 LCD display. If these are uncommented, be sure
 * that the lines for the SSD106 display are commented out
 */
//#define USE_LIQUIDCRYSTAL_LIBRARY
//#define USE_LCD_20X4_DISPLAY

/**
  * Uncomment the two lines below to use the U8Glib library
  * with the SSD1306 28x64 OLED display. If these are uncommented,
  * be sure that the lines for the 20 x 4 LCD display are commented out
  */
#define USE_U8GLIB_LIBRARY
#define USE_SSD1306_128X64_DISPLAY

 /**
  * The U8glib trades off speed of display refresh for the amount of
  * SRAM used by the page buffers. If you are tight on space in your
  * sketch, uncomment the line below to use the smaller, but slower
  * page buffer.
 */
//#define USE_SMALLER_SSD1306_128X64_BUFFER

#include <Wire.h>
#include <SPI.h>

#include <si5351.h>

#ifdef USE_U8GLIB_LIBRARY
#include <U8glib.h>
#endif

#ifdef USE_LIQUIDCRYSTAL_LIBRARY
#include <LiquidCrystal_I2C.h>
#endif

/**
 * Pared-down implementation of DigitalPin/DigitalPulse
 * Uncomment the definition of the macro USE_SIMPLE_DIGITAL_PIN
 * below to use a non-library, local implementation of the
 * DigitalPin and DigitalPulse classes.
 *
 * The local versions of these classes have all unused
 * functionality removed, yielding the minimum flash memory
 * size.
 */
#include "SimpleDigitalInputPin.h"
#include "SimpleDigitalPulse.h"
#define INPUT_PIN_TYPE SimpleDigitalInputPin

#include "si5351_VFODefinition.h"

#ifdef USE_U8GLIB_LIBRARY
   #ifdef USE_SSD1306_128X64_DISPLAY
      #include "SSD1306_U8GLIB_VFODisplay.h"
   #endif
#endif

#ifdef USE_LIQUIDCRYSTAL_LIBRARY
   #ifdef USE_LCD_20X4_DISPLAY
      #include "LCD2004_LCDLIB_VFODisplay.h"
   #endif
#endif

/**
 * The following two lines control whether a heading
 * line is shown on the display. Uncomment the
 * setting you want. The no heading display is
 * intended primarily for 2 line LCD displays
 */
//#define DISPLAY_HEADER_LINE      NO_HEADING
#define DISPLAY_HEADER_LINE    SHOW_HEADING

/**
 * hardware pin definitions
 */
#define ENCODER_PIN_A                     2
#define ENCODER_PIN_B                     3
#define VFO_SELECTOR_PIN                  4
#define FRQ_DELTA_SELECTOR_PIN            5

/**
 * frequency change constants
 */
#define FREQ_DELTA_DEFAULT              100
#define FREQ_DELTA_MAX                10000
#define FREQ_DELTA_MIN                   10
#define FREQ_DELTA_MULT                  10

/**
 * The following two lines control how many
 * VFOs the sketch will control - maximum 3.
 * You can reduce the number of VFOs if you are
 * using a display with fewer than 3 lines
 */
#define NUMBER_OF_VFOS                    3
#define STARTING_VFO                      1

/**
 * vfo frequency limits
 */
#define FREQ_VFO_A_DEFAULT          3560000
#define FREQ_VFO_A_MIN              3500000
#define FREQ_VFO_A_MAX              4000000

#define FREQ_VFO_B_DEFAULT          7055000
#define FREQ_VFO_B_MIN              7000000
#define FREQ_VFO_B_MAX              7300000

#define FREQ_VFO_C_DEFAULT         10120000
#define FREQ_VFO_C_MIN             10100000
#define FREQ_VFO_C_MAX             10150000

/**
 * delay times
 */
#define BUTTON_DEBOUNCE_WAIT_MILS         5
#define SETUP_DELAY_MILS                  5
#define LOOP_DELAY_MILS                  20
#define FREQ_DELTA_LATENCY_MILS         900

/**
 * Si5351 clock board object
 */
Si5351 si5351;

/**
 * vfo list and variables controlling frequency
 */
VFODefinition *vfoList[NUMBER_OF_VFOS];

short currVFO;
VFODefinition *pCurrentVFO;
short freq_delta_display_time;
unsigned long frequency_delta;

/**
 * display object
 */
VFODisplay *pDisplay;

/**
 * digital pins (reading button presses)
 */
INPUT_PIN_TYPE VFOSelectPin( VFO_SELECTOR_PIN
                                , INPUT_PULLUP
                                , BUTTON_DEBOUNCE_WAIT_MILS
                                , DIGITAL_PIN_INIT_STATE_HIGH
                                , DIGITAL_PIN_INVERTING);

INPUT_PIN_TYPE FrequencyDeltaSelectPin( FRQ_DELTA_SELECTOR_PIN
                                       , INPUT_PULLUP
                                       , BUTTON_DEBOUNCE_WAIT_MILS
                                       , DIGITAL_PIN_INIT_STATE_HIGH
                                       , DIGITAL_PIN_INVERTING);


/**
 * handler code for frequency selection via rotary encoder
 */
#include "FrequencySelection.h"

/**
 * initialization code for hardware devices
 */
#include "DeviceInitializations.h"

/**
 * sketch setup
 */
void setup()   {
   // initialize serial port at a relatively languid rate               
   Serial.begin(9600);
   
   // initialize digital input pins for button presses               
   setupInputPins();
   
   // setup encoder for frequency adjustments               
   setupEncoder();
   
   // initialize vfo list               
   setupVFOs();
   
   // light up display               
   setupDisplay();   
   
   // turn on vfos               
   setupSI5351();   

   delay(SETUP_DELAY_MILS);
}

/**
 * operating loop
 */
void loop() {
   // selecting output vfo is first priority
   if (VFOSelectPin.readInputPulseMode()) {
      int mode = VFOSelectPin.getCurrentPinMode();
      switch (mode) {
         case PIN_MODE_SHORT_PULSE:
            // short pulse - switch to next vfoList
            // - turn off current clock
            pCurrentVFO->stop();
           
            // increment the selected vfoList
            currVFO = (++currVFO) % NUMBER_OF_VFOS;
            pCurrentVFO = vfoList[currVFO];
           
            // turn on new clock if not disabled
            pCurrentVFO->start();
 
            // repaint the vfoList display
            pDisplay->showVFOs(frequency_delta, currVFO);

            // reset pin
            VFOSelectPin.setCurrentPinMode(PIN_MODE_IDLE);
            break;

         case PIN_MODE_LONG_PULSE:
            // long pulse - toggle vfoList enable flag
            pCurrentVFO->toggleEnabled();
           
            // turn on new clock if not disabled
            pCurrentVFO->start();

            // repaint the vfoList display
            pDisplay->showVFOs(frequency_delta, currVFO);

            // reset pin
            VFOSelectPin.setCurrentPinMode(PIN_MODE_IDLE);
            break;
      }
   }

   // then we can check to see if frequency delta needs to change
   if (FrequencyDeltaSelectPin.readInputPulseMode()) {
      int mode = FrequencyDeltaSelectPin.getCurrentPinMode();
      switch (mode) {
         case PIN_MODE_SHORT_PULSE:
            // short pulse - change frequency delta
            if (frequency_delta < FREQ_DELTA_MAX) {
               frequency_delta *= FREQ_DELTA_MULT;
            }
            else {
               frequency_delta = FREQ_DELTA_MIN;
            }

            // take over display to show new frequency delta
            pDisplay->showFreqDeltaDisplay(frequency_delta);
            freq_delta_display_time = FREQ_DELTA_LATENCY_MILS;

            // reset pin
            FrequencyDeltaSelectPin.setCurrentPinMode(PIN_MODE_IDLE);
            break;

         case PIN_MODE_LONG_PULSE:
            // long pulse - disable all VFOs
           
            for (int ii=0; ii<NUMBER_OF_VFOS; ++ii) {
               // set band enable flag off
               vfoList[ii]->setEnabled(false);
           
               // - turn off current clock
               vfoList[ii]->stop();
            }

            // repaint the vfoList display
            pDisplay->showVFOs(frequency_delta, currVFO);
           
            // reset pin
            FrequencyDeltaSelectPin.setCurrentPinMode(PIN_MODE_IDLE);
            break;
      }
   }
 
   // check to see if freq delta display needs to be overwritten
   if (freq_delta_display_time > 0) {
      // update the display time for the vfoList select pin
      freq_delta_display_time = (freq_delta_display_time > LOOP_DELAY_MILS)
                              ? (freq_delta_display_time -= LOOP_DELAY_MILS)
                              : 0;

      // repaint the vfoList display if freq display time exhausted
      if (freq_delta_display_time <= 0) {
         pDisplay->showVFOs(frequency_delta, currVFO);
      }
   }
 
   // re-display frequencies if encoder has made changes
   if (updateSelectedFrequencyValue()) {
      pDisplay->showVFOs(frequency_delta, currVFO);
   }
   
   delay(LOOP_DELAY_MILS);
}

    © 2018 GitHub, Inc.
    Terms
    Privacy
    Security
    Status
    H
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2NC - 16 Ocak 2018, 10:05:29
Hulusi bey merhaba,
Arduinoyu yazdiklarinizi calistirabilen bir USB drive olarak dusunun.
İcine dilediginiz kadar program yazip sileiblirsiniz bir sorun yok.
Library ve yazilim farkli seyler.
Soyle ki,

Arduino icin yazilmis bir program icinde bazi temel libraryler barindirir. Her program icin birseyler yazmak yerine bu libraryleri programiniza ilave edersiniz ve kullanirsiniz.
Ornegin si5351 kullanan ve bu donanimi kullanarak belirli bir islem yapan bir program yazacaksam, bana lazim olan yapacagim islem ile iligli kismi yazmak, si5351 in kontrolu icin ise daha once baskasinin yazmis oldugu library'i kullanmak.

Bugun arduino'ma si5351 baglar onu kullanirim, yarin bir de ilave lcd baglar (onun da librarysini yukler) sonra lcd ye yazdiracagim bilgiler icin yazilimima ilave yaparim.
Ertesi gun bir de gps modulu baglar (nun da kontrolu icin library yukler) gps ten aldigim bilgi ile birkac hesaplama vs yaparim... gibi.

Arduino'da program kismi ayri library kismi ayridir.
Library'yi arduino yaziliminin add library kismini kullanarak eklersiniz.
Sonra yaziliminizin icine bir include cumlesi yazarak bunu kendi yaziliminizda da kullanirsiniz.

Bazi gelistiriciler kendi programlarini duz olarka yazar, sizin libraryleri manual olarak eklemenizi bekler, bazilari ise, (K3NG de oldugu gibi) hem ino (program ) kisimarini , hem de library kisimlarini zipleyip tek bir klasor haline getirir. Boylece kullanici ilave birsey kurmadna direkt olarak ilgil arduinosuna herseyi yukleyebilir.



Evet asagida yazdiginiz  bir arduino programi. goreceginiz gibi icine libraryleri de yuklemesi icin gerekli satirlar eklenmis
#include <Wire.h>
#include <SPI.h>

#include <si5351.h>

#ifdef USE_U8GLIB_LIBRARY
#include <U8glib.h>
#endif

#ifdef USE_LIQUIDCRYSTAL_LIBRARY
#include <LiquidCrystal_I2C.h>
#endif



Ancak, bu libraryleri sizin arduino yazilimina ilave etmeniz gerek yoksa derleme sirasinda library bulunamadi hatasi alirsiniz.



Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 16 Ocak 2018, 11:38:55
Ben yazarken Oğuzhan bey de cevaplamış ama, yine de paylaşıyorum...

ilk sorunuzdan başlayayım.

Arduino'ya her program attığınızda içindekini siler. ayrıca silmenize gerek yok.
Arduino program dosyalarının uzantısı "ino" dur. Bu dosyayı file/open ile açabilirsiniz. Kodu kopyalayıp yapıştırmak da aynı işi görebilir.
Ancak kopyaladıktan sonra kaydedip tekrar açmakta fayda var.

Bu güne kadar hiç bir arduino'yu statik paket içinde kullanmadım, hiç orjinal arduino da almadım. O kadar nazik bir cihaz değil :)

Arduino'yu açtığınızda, bir kütüphane seçmeniz gerekmiyor. Portun aktif olması tesadüf olmuş.

Arduino IDE'si (arduino kodunu yazıp/açıp attığınız program) ilk yüklemeyle gelen veya programa özel (sonradan yüklenebilen) kütüphaneleri,
kodun içinde görüp, olması gereken yerden alıp, kodunuza bağlarlar.

Evet, verdiğiniz örnek bir arduino ana programıdır.
Kodun içindeki şu satırlara dikkat ediniz;

SDD1306 I2C OLED
LiquidCrystal_I2C- interface for the 20x4 LCD display
Etherkit SI5351  - interface for the SI5351a clock chip

* Libraries used in this sketch are:
 *  - Google U8glib    - interface for the SDD1306 I2C OLED display. This is
 *                       not supplied, but is available here:
 *                       https://code.google.com/p/u8glib/
 *
 *  - F Malpartida
 *    LiquidCrystal_I2C- interface for the 20x4 LCD display with I2C. This is
 *                       not supplied, but is available here:
 *                       https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
 *
 *  - Etherkit SI5351  - interface for the SI5351a clock chip,
 *                       not supplied but available here:
 *                       https://github.com/etherkit/Si5351Arduino 


Arduino ile gelen kütüphane dışında, başka kullanıcıların yazdığı, 3 adet kütüphaneye daha ihtiyaç duyuluyor.
Bu 3 kütüphaneyi, ana program ile beraber gelmediyse, sizin bir sefere mahsus yüklemeniz gerekiyor. bunun da bir kaç yolu var.
(Ama diyelim ki, OLED kullanmayacaksınız, bununla ilgili komutları, kodun içinden temizlerseniz, yüklemeniz gerekmez.)
 
Aşağıdaki resimde gördüğünüz gibi, "manage libraries" içinde bazı kütüphaneleri bulabilir ve yükleyebilirsiniz.

En üst sağ kutucuğa aradığınız kütüphanenin adını yazın (örneğin SDD1306)
Bir veya birden fazla kütüphane gelebilir karşınıza. Yüklemek istediğinizi seçip, sağda çıkan "install" butonu ile yükleyin.

Ya da, kod üzerinde denemeler yapmayacaksanız, tüm bunları yapan birisinden, hex dosyasını alıp yükleyeceksiniz.

73


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 16 Ocak 2018, 12:21:55
Murat bey ve Oğuzhan bey hızır gibi yetişmişler ve çok aydınlatıcı bilgiler vermişler. Sağolsunlar.

Arduino'ya başlarken benzer zorlukları herkes yaşayabilir bu azminizi kırmasın.
Göreceksiniz ki bir süre sonra herşey çok daha kolay olacak.

Siz biraz zordan başlamışsınız gibi sanki.
Size naçizane önerim; hem Arduino IDE'ye, hem Library mantığına hemde programlamaya tam hakim olmak için
daha basit hazır sketch'lerle hakimiyet sağlamanız.
Örneğin; her yeni başlayanın yaptığı gibi Led yakıp söndürmek, LCD ekrana veya Serial Monitor'e yazı veya veri yollamak v.s. gibi.

Takıldığınız yerde yardıma koşacak arkadaşlar var. Ben de elimden geldiği kadar yardıma hazırım.
Size kolay gelsin.

Sağlıcakla kalın.
İlhan Güven, 73

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 17 Ocak 2018, 02:32:13
İlginize çok teşekkürler. Lab. dan uzak olduğum için "hardware" çalışamıyorum. Şu anda deneme imkânım yok. Sadece elimde malzemeler birde laptop sadece bilgi yükleniyorum.

Bir sorum daha olacak. İnternetten araştırırken arduinonun LCD çalıştırırken 4 dolayında uç kullandığını gördüm. LCD yi Buna adapte eden shield 16x2 LCD ile karşılaştım. Sanırım ek devre ile 16 bacağı 4 veya 5 e düşürmüş. Hemen sipariş verdim. Laboratuvara gidince hepsini deneme imkânım olacak.
Sevgi ve saygılarımla. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2NC - 17 Ocak 2018, 11:03:34
LCD lerin 4 bacakli calisani sanirim i2c portu uzerinden calisan shiedleri.
Bu LCD yi kullanmak icin de ilgili i2c librarysini yuklemek gerekiyor. yaizlim icinde de (ona uygun degilse) gerekli degisikligi yapmak gerekiyor ki uygun LCD ye goruntuyu verebilsin
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 17 Ocak 2018, 11:32:22
Zaten verdiğiniz örnekte de, I2C'den çalışan 20x4 LCD kullanılmış.


*  - F Malpartida
 *    LiquidCrystal_I2C- interface for the 20x4 LCD display with I2C. This is
 *                       not supplied, but is available here:
 *                       https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3ALS - 17 Ocak 2018, 12:25:03
Hulusi Bey,
doğrudan seri iletişim kullanan lcd ler var. Onlardan da edinebilirsiniz. Ama paralel iletişim niye kullanılıyor diye düşünmekte fayda var. LCD nin paralel bacaklarının tamamını kullanırsanız, 1 birim zamanda yapılan iletişim işi 4 data bacağı kullanıldığında 2 birim zamana, tam seri iletişim kullanıldığında ise en az 8 birim zamana çıkar. Buna hesap kitap işlemleri ile si5351'e veri gönderme işlemlerini de katarsanız, programın bir döngüsü oldukça zaman alır. Kullandığınız enkoder hızlı çevirdiğinizde algılamaz, geride kalır. Programın hızı sizi tatmin etmez.
İşlemcinin saat hızını artırarak hesap-kitap işlerini hızlandırsanız bile çevre birimleri ile olan seri iletişimi hızlandıramazsınız.
O yüzden her iki durum arasında bir denge aramak gerekir.
Zamanında AD9850 ile bir sweep devresi yapmıştım. Hız yavaş kaldığından, dds nin paralel giriş portunu kullanmam gerekti. Tarama hızı 5 kat artmıştı.
Selamlar.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 18 Ocak 2018, 16:12:36
AliŞahin bey, Doğrudur  bu iş için Nokia5110 LCD ekran kullanmışlar, ancak bizim arkadaşlar sağolsunlar, Direnç Net'te  5110 bırakmamışlar.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 20 Ocak 2018, 09:43:02
Arkadaşlar, yükleme yapabilirken, her ne olduysa, "error compling for board arduino nano" yazısı çıkıyor. ne olabilir acaba?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 20 Ocak 2018, 18:22:23
Doğru board'u seçtiğinizi varsayıyorum.
Bu hatanın yanında başka bir hata ayrıntısı var mı?
Başka basit bir sketch yüklemeyi deneyin aynı hatayı verip vermediğine bakın.
Kodlamada bir hata yada eksik kütüphane var mı yokmu anlamak lazım.


Mobil cihazdan gönderildi.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 20 Ocak 2018, 18:33:30
Çözdüm; şöyle, bordu her taktığımda ekranda doğru seçimler görünsede hepsini yeniden tıklayınca yükleme yapıyor.
Şöyle, arduino nano yu tekrar tıkla,
Port; doğru görünsede tekrar tıkla v.s.
Aksi takdirde tanımıyor
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 20 Ocak 2018, 18:45:08
Sevindim çözdüğünüze. Eh.. böyle böyle deneyim sahibi oluyoruz.
Kolaylıklar diliyorum.


Mobil cihazdan gönderildi.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 26 Ocak 2018, 14:18:24
Heyecanla kargodan LCD, OLED, LCD shield lerden geldi. Birde elimde arduino nano var. Bazı programlar yükledim ancak şemaya göre bağladığım devrede lcd ve oled i  çalıştıramadım. Ekranlarda bir belirti yok. Problem acaba programlarda olabilirmi? Acaba lcd leri çalıştırmak için başka ne yapmalıyım?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 26 Ocak 2018, 14:23:02
Şema
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 26 Ocak 2018, 14:34:45
Merhaba,

Hangi ekranı kullanacaksanız, Kodun içinde ilgili satırları açmak gerekiyor.
Arduino, // ile başlayan satırları dikkate almaz.


//#define USE_LIQUIDCRYSTAL_LIBRARY
//#define USE_LCD_20X4_DISPLAY

#define USE_U8GLIB_LIBRARY
#define USE_SSD1306_128X64_DISPLAY

//#define USE_SMALLER_SSD1306_128X64_BUFFER


SCL, SDA uçları si5351 ile ortak kullanılıyor. si5351 çalışıyor mu?
SCL ve SDA uçlarını 10k direnç ile Vcc'ye çekmeniz gerekebilir.  Bağlantılar doğru ise, 10k direnç ekleyerek ve kod içinde gerekli kütüphaneleri açıp kapatarak deneyin.

4x20 LCD için ayrıca bir modül kullanıyorsunuz (I2C'den paralele çevirmek için) onun üzerinde jumper vs. varsa onlara da bakmak lazım.


73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 28 Ocak 2018, 17:18:12
Hulusi bey kullandığınız OLED ekran I2c'yi destekliyor değil mi?
Fotoğraftan anlayamadım.
Kod içinde  OLED ekranın adresi doğru tanımlanmış mı ona da bakmak lazım.
Ekranın I2c adresinden emin değilseniz http://playground.arduino.cc/Main/I2cScanner (http://playground.arduino.cc/Main/I2cScanner) bu sketch ile tarayıp bulabilirsiniz.
Bence önce sadece OLED ekran bağlantısını doğru yapıyormusunuz, kendisi çalışıyormu sırf onu basit bir sketch ile deneyip emin olun.
Mesela bunu deneyin..http://arduino-er.blogspot.com.tr/2015/04/hello-world-096-inch-128x64-i2c-oled-on.html (http://arduino-er.blogspot.com.tr/2015/04/hello-world-096-inch-128x64-i2c-oled-on.html)
Sonra LCD ekranı da ayrıca deneyip çalıştığından emin olun.
Sırf kontrası ayarlayan potu düzgün ayarlamadığım için görüntü alamayıp ne kadar uğraştığımı hatırladım birden.
Adım adım ilerleminizde yarar var.
Bir de kullandığınız kodu paylaşırsanız takip etmemiz daha kolay olur.

Kolaylıklar diliyorum.
İlhan Güven
TA1AIG, 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 28 Ocak 2018, 17:59:54
OLED in özelliklerine bakacam.
Dün Nokia 5110 ismarladım. Onun Oled gibi problemi olurmu?
Birde Arduino uno ismarladım. LCD shield UNO ya direkt  bağlanıyormuş. Bendeki LCD shield i bağlayıp trimpot ile ekran parlaklığını ayarlayacam. Bu konuda haklısınız. Parlaklık konusunda deneyimliyim.
Yani; hem "2x16 LCD screen" var, hem "LCD arduino shield" var, hem OLED var  ve hemde NOKİA 5110 LCD olacak birisinden biri çalışır herhalde.
Arduino LCD library lere bakıyorum ancak halen yükleyemedim.
ACABA; aşağıdaki programlardan hangisi "Library"
    1-.github    Add GitHub issue template                                                                    2 years ago
   2-examples/si5351    comments                                                                            4 years ago
   3-Adafruit_SI5351.cpp    Fix includes to allow for ARM architectures (M0)            4 months ago
   4-Adafruit_SI5351.h    Removed unused Adafruit_Sensor.h include                    2 years ago
   5-README.md    added R divider support                                                                    4 years ago
   6-asserts.h    First commit                                                                                    4 years ago
   7-errors.h    First commit                                                                                    4 years ago
   8-library.properties    Update library.properties                                                    2 years ago
README.md
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 28 Ocak 2018, 18:02:50
Murat bey, aşağıdaki linki açarken,  hangisi LCD library?

    https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA4EM - 28 Ocak 2018, 18:51:49
Merhaba
Pic proğramlamanın gözünü seveyim,ne gönderirsen kabul ediyor.Arduino lu proğramlar yüzünden neredeyse elektronik hobisinden vazgeçer oldum.Selamlar.E.Çiçek Ta4em Isparta
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 28 Ocak 2018, 20:37:25
Bu proğramı yazan kodları tam vermişmi sadece librarylerle çalışmaz Ana proğram (main) dosyası varmı ordan I2C ,LCD ,si5351 ,enkoder ,buton vs ile ilgili komutlar gönderilir . ne yapması isteniliyorsa libraryler burdan çağrılır.
Söyleyin yazara tüm kodları bir dosyaya koyup öyle yayınlasın.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 29 Ocak 2018, 07:14:04
 Arduino da, Karanlıkta yürür gibiyim.
Sonunda müzeye kaldırmak istemiyorum. SABIRRR..
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 29 Ocak 2018, 09:21:26
Hulusi Bey,

Verdiğiniz linktekilerin hepsi LCD kütüphanesi, sürümleri farklı.
Bunlardan güncel olanı indirip, elinizdeki I2C LCD ile test yapabilirsiniz.

LiquidCrystalV.1.2.1 olanını indirdiniz diyelim. Arduino IDE'den resimdeki gibi ZIP library'yi seçip, indirdiğiniz zip dosyasını gösterin.
Library otomatik olarak eklenecektir.
Bundan sonra örnekler/examples içinde, "liquidCrystal" altındaki kodlarla test yapabilirsiniz. (helloword I2C örneği var, sizin işinizi görür)

Örnekte aşağıdaki gibi bir satır var.

LiquidCrystal_I2C lcd(0x38);  // Set the LCD I2C address

bu sizin LCD'nizin adresi. LCD'nin arkasına takılan modülde adres yazıyor mu? sabit bir adres olabilir veya jumper ile ayarlanıyor olabilir.

Bunun dışında önceki mesajımda söylediğim gibi, SCL, SDA uçları 10k direnç ile Vcc'ye çekilmiş olmalı.


OLED çalıştırmak da bu LCD kadar kolay aslında ancak onun kütüphanesi, bir çok modeli desteklediğinden, doğru model ve bağlantı tipini seçmek gerekiyor. Elinizdeki OLED'in ön ve arka fotolarını gönderirseniz onu da çalıştırırız.
Bunları ayrı ayrı çalıştırdıktan sonra, ana programda sadece gerekli düzeltmeleri yapmak kalacak.

Arduinoyu müzeye kaldırmanız çözüm değil, emin olun mikrokontrolcü kullanmanın en kolay yolu arduino'dur.
Burada yaptığınız işi, PIC ile böyle kolay yapamazsınız.

73










Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2UH - 29 Ocak 2018, 10:14:17
Hulusi Bey merhabalar, mesajlarımda iki kaynak kitap tavsiye etmiştim. İkisi de Türkçe ve çok güzel anlatımı olan kitaplar. Bir tanesini alıp örnekleri yapa yapa giderseniz anlayarak ve daha hızlı ilerler, bu kadar da eziyet çekmezsiniz. Ben öyle yaptım hala da yavaş yavaş devam ediyorum konu bir derya... Yeni bir sistemle karşı karşıyasınız, bir haftada buna vakıf olamazsınız. Halbuki bir kitap, sora sora, forumlardan iki senede öğreneceğiniz şeyi size bir ayda verebilir. Zaten bilgi temeli olmadan yapılan uygulama sağlıksız olur ve hep başkalarına mahkum kalınır. İnanın zaman ve imkan olsa, yardım etmek istiyorum şu mesajı bile kahve molasına sığdırmak zorunda kaldım. Eminim üstesinden geleceksiniz, kolaylıklar dilerim, 73, Çağlar Akgüngör


Tapatalk kullanarak iPhone aracılığıyla gönderildi
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 29 Ocak 2018, 12:05:11
Murat bey, Ali Çağlar bey, aranızda ayırım yapamıyorum;
Acaba ben aşağıda resimleri görülen arduino nano, si5351, OLED LCD, arduino uyumlu arayüzlü LCD leri göndersem, si5351 DDS li devreyi çalıştırıp bana geri gönderebilirmisiniz?
Tabiki kargolar benden.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 29 Ocak 2018, 12:10:23
Si5351
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2BS - 29 Ocak 2018, 13:57:14
Ali Çağlar Bey  Türkçe olan iki kaynak kitabın isimlerini yazabilirmisin. Bizde faydalanalım.

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 29 Ocak 2018, 13:58:13
Hulusi Bey,

Yazmak kolay da, bu işlere vakit ayırmak zor :)
Bildiğim kadarıyla, kodu derleyip arduino'ya yükleme aşamasını geçmiştiniz.
Son güncel kodu da paylaşırmısınız?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2UH - 29 Ocak 2018, 17:33:40
Hulusi Bey, ne yazık ki kendi projelerim bile karmakarışık halde kutularda yatıyor... Keşke zamanım olsaydı.

Hakan Bey:
http://www.idefix.com/Kitap/Arduino/Coskun-Tasdemir/Egitim-Basvuru/Bilgisayar/urunno=0000000387938
http://www.idefix.com/Kitap/Derinlemesine-Arduino/Egitim-Basvuru/Bilgisayar/urunno=0001720655001
http://www.idefix.com/Kitap/Projelerle-Arduino/Sertan-Deniz-Saygili/Egitim-Basvuru/Bilgisayar/urunno=0000000671911

Başka bir kitapçıda da bulunabilir, ben aramada kolaylık olduğu için sadece bu siteye baktım.

73,

Çağlar
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2BS - 29 Ocak 2018, 17:44:15
Ali Çağlar Bey  Tamamdır. Teşekkür ederim.

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 29 Ocak 2018, 21:30:04
Hulusi bey merhaba,

Gerçi siz isim vererek yardım istemişsiniz ama çözümsüz kalmanıza gönlüm razı olmadı.
Sizin yapmaya çalıştığınız si5351'li Universal VFO devresi  http://pa0rwe.nl/?page_id=804 (http://pa0rwe.nl/?page_id=804)  bu adresteki devre midir.?
Burada hem PIC versiyonu hem de Arduino versiyonu bir arada verilmiş.

İlhan Güven
TA1AIG, 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 30 Ocak 2018, 07:28:53
İlhan bey, yardımlarınızı bekliyorum, ismen yardım istemem yanlıştı haklısınız.
Çağlar bey, önerdiğiniz kitaplardan birini ismarladım.

bu arada LCD ekranda yazı yazacak basit bir program yükledim, ancak LCD ekranda görünen bir yazı yok. Neden acaba? Hatam nerede.
(Bu arada kontrast ayarı kusursuz. yazı olsa görünecek.) 
Program şu:

 #include <LiquidCrystal.h>

// LCD için kullanılacak çıkışlar set edilir. LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2); // LCD ekran arayüzü başlatır ve ekran boyutları (genişlik ve yükseklik) belirtir
lcd.print("*RESUL DOLANER*");   // Ekrana Yazı Yazdırılır.
lcd.setCursor(0, 1);    // ekranın alt satırına yazı yazdırmak için cursor konumlandırılır.
lcd.print("resuldolaner.com");

delay(5000); // ilk yazı 5 sn ye ekranda yazılı kalır
lcd.clear(); // ekran tamamen silinir.
lcd.print("LCD DISPLAY"); // ve başka bir yazı yazdırılır.
}

void loop() {

}
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 30 Ocak 2018, 07:46:40
İlhan bey
verdiğiniz linkede bakmıştım. Ancak tam bilemiyorum. belki 30 ayrı linkten programlar yükledim.Bende karıştırdım. Hiçbirinden bir sonuç alamadım.73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA8A - 30 Ocak 2018, 08:19:32
Hulusi Bey,

LCD ekranınızın üzerinde I2C modülü var. O sebeple bu program çalışmaz. Kullanacağınız programın içerisinde Murat beyin örneğini verdiği

LiquidCrystal_I2C lcd(0x38);  // Set the LCD I2C address

gibi bir satırın olması gerekir. Bu satırın olduğu bir LCD test programı bulursanız iyi olacaktır diye düşünüyorum. 73

Bilal Ekmekci, TA8A
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 30 Ocak 2018, 09:08:41
Hulusi Bey,

Elinizde 2 çeşit Karakter LCD var, biri I2C modül takılmış, diğeri arduino uyumlu LCD shield olan.

Arduino UNO üzerine LCD shield takıp test ediyorsanız;
Elinizdeki LCD'nin, Arduinonun hangi pinlerine bağlı olduğunu bilmeniz lazım.

Bu shield için örnek bu linkte:  https://www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)#Pin_Allocation

yukarıda verdiğiniz örnekte, lcd pin değişikliğini yaparak da deneyebilirsiniz. Bu şekilde;

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


---------------------------------------------------------------------------------------------------------------------------------------------------------

I2C LCD'nin arkasına bakarsanız, modül üzerinde  A1, A2, A3 şeklinde boş padler göreceksiniz. Bu, modüle adres vermek içindir.

Modülün üzerindeki entegreye bakın, PCF8574 veya PCF8574A ise;

A1, A2, A3 LOW (şaseye bağlı) ise adres:

PCF8574   için 0x20
PCF8574A için 0x38

A1, A2, A3 HIGH (Vcc bağlı) ise adres:

PCF8574   için 0x27
PCF8574A için 0x3F


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 30 Ocak 2018, 09:10:41
Hulusi bey eğer çok aceleniz yoksa bana yollayın ben toparlayıp size yollayayım.Adresimi özel mesaj ile yolluyorum.


Mobil cihazdan gönderildi.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 31 Ocak 2018, 20:11:20
Dündar bey,

Arduino Nano ve Oled ikilisi tamamdır. Sorunsuz çalışır hale getirdim.

Yanlız 128x64 Oled biraz küçük olduğu için yazılar da size biraz küçük gelebilir.
İsterseniz bir de yolladığınız Arduino Uno ve Nokia 5110 ikilisi için de hazırlayayım.
Ne dersiniz?

Sağlıcakla kalınız.
İlhan Güven
TA1AIG,73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 01 Şubat 2018, 00:50:11
Arkadaşlar,
Arduino nano-si5351  multiband ssb hf   ( 3,5 - 7.0- 14.0- 28.0-......mhz) ler için  RF=VFO+IF    veya  RF=VFO-IF  formulüne göre çalışan LIBRARY önerisi olan varmı acaba?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 22 Şubat 2018, 09:39:29
Öncelikle arduino'mu programlayan İlhan Güven arkadaşıma ve yardımcı olan arkadaşlarıma çok teşekkürler.

Arduino kitapları aldım birr adım attım. Biraz daha bilinçlendim.
Ancak bu bilinçle bulduğum library ler hep hata veriyor.
Şöyle;  örnek:  #include^LiquidCrystal_I2c.h^ ;   yazıyorum ( ^ işareti yan duracak!) LiquidCrystal_I2c ibaresi siyah kalıyor. Halbuki asıl örnekte kırmızıya dönüyor. Programı silip tekrar tekrar yükledim, acaba programmı bozuk diye; anlayamadım. Dolayısiyle  hata veriyor. Halbuki library doğru. Acaba sebep ne olabilir sizce?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1JA - 22 Şubat 2018, 10:43:37
Merhaba,

LiquidCrystal_I2c.h dosyasının yerini bulamadığı için siyah kalıyordur.

bu kütüphaneyi doğru şekilde yüklediniz mi? (IDE içindeki "manage libraries" veya "Add Zip file ile")
yüklemediyseniz, arduino bu kütüphanenin yolunu bilemediğinden, "LiquidCrystal_I2c.h" dosyasını bulamaz.

LiquidCrystal_I2c.h dosyasını bulup, örneği kaydettiğiniz klasöre kopyalayabilir ve
#include "LiquidCrystal_I2c.h"  şeklinde (çift tırnak içinde) tanımlarsanız çalışması mümkün.

<> veya "" kullanmak, dosyayı nerede arayacağını belirler.

73

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 22 Şubat 2018, 19:28:18
Dündar bey merhaba,

Yanlış hatırlamıyorsam Arduino IDE'yi Türkçe kullanıyordunuz.
"Dosya/Tercihler" 'e tıklayıp "Taslak Defteri Konumu"'unda adres olarak nereyi gösteriyor kontrol edermisiniz?

Ben kütüphane dosyalarını; derli toplu olması açısından bu klasörün altındaki "Libraries" klasörü altnda topluyorum.
Murat bey'in dediği gibi IDE kütüphanenin adresini bulamıyor. Kütüphane klasörünün olması gereken yerde olup olmadığını kontrol etmelisiniz.

Bu arada sizin Arduino'ya  yüklediğim program istediğiniz gibi çalışıyor mu?
Si5351 Frekans çıkışları tamam mı?

Kolay gelsin.
İlhan Güven
TA1AIG, 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 25 Şubat 2018, 11:13:09
Yukarıdaki önerilerinizi deniyorum.

Bir sorum daha olacak: Kopyala yapıştır yapmak için; bu işlemi nasıl yapacağım? Doğrudan program içine yüklediğimde de hep hata veriyor. Kendiliğinden soruyor tamam deyince library'e kaydediyor. Ancak yinede hata veriyor. Bir yerlerde yanlışım var ama çözemedim. Kitapları yazanlarda adeta baştan savma yazmışlar. Kesinlikle çok ağdalı, anlaşılır gibi değil. 450 sayfa ancak sanırım kopya. Yazar hiç katkıda bulunmamış. Bu kadar çalışmaya hiç bir şey anlamadım. Sanırım çok iyi bilenlere anlatmışlar. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2BS - 25 Şubat 2018, 15:16:00
Hulusi bey bende bu kitaplardan almayı düşünüyordum fakat daha fırsat bulup bir kitapcıda bu kitapların içlerindeki konularını incelemediğimden kitapları alamamıştım. Dediğiniz gibiyse ozaman bizim gibi yeni başlayanlar bu kitaplardan bir şey ögrenemez.
Birde siz hangi kitapları aldınız ?

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 25 Şubat 2018, 19:02:58
Dündar bey,

Arduino IDE'yi tıklayıp başlattığınızda aşağıdaki satırların olduğu boş bir taslak gelir.

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Eğer siz başka bir yerden bir taslak kopyalayıp bu yeni açtığınız taslak içine yapıştırırsanız hata verir.
Çünkü sizin açtığınız boş taslakda yukarıdaki void setup() ve void loop() satırları zaten kendiliğinden geliyor.
Siz kopyaladığınız taslakdan da void setup() void loop() satırlarını alıp yapıştırıyorsunuz böylece işler karışıyor ve derleme hatalı oluyor.

Önce yeni bir taslak açtığınızda içindeki tüm satırları silip temizleyin.
Sonra kopyaladığınız taslağı buraya yapıştırın.

Arduino öğrenmek için Internette o kadar çok yazılı ve görsel Türkçe-Ingilizce kaynak ve eğitim içeriği var ki;
Ben hiç kitap kullanmadım..

"hata veriyor" şeklinde genel tariflerle hatanın ne olduğunu anlamamız ve çözüm üretmemiz çok zor.

Onun yerine; hata olarak IDE ne diyor? Ayrıntılı hata dökümü nedir? Bunları yazarsanız size yardımcı olmaya çalışalım.
IDE, derleme yaparken bir hata olduğunda kırmızı harflerle hatanın ayrıntılarını söyler. Bunu bilmeden yardımcı olmamız zor.

Kolaylıklar diliyorum.

Sağlıcakla kalın.
İlhan Güven
TA1AIG, 73


Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA8A - 26 Şubat 2018, 08:47:47
Dündar Bey,

Sizin okuduğunuz 450 sayfalık kitabın ismini yazabilir misiniz? Eğer isminde ya da açıklamasında "yeni başlayanlar için" gibi bir ibare yoksa sizin başlangıç seviyesindeki sorularınızın cevabını o kitapta bulabileceğinizi düşünmüyorum. Dediğiniz gibi çok iyi bilenler için yazmış olma ihtimalleri yüksek.

Aynı şekilde burada sizin sorularınıza cevap veren arkadaşlar da sizin temel bilgilere sahip olduğunuzu düşünerek cevap yazıyor olabilirler. Ama İlhan beyin önerisini göz ardı etmemek lazım. Sorunlarınızı daha detaylı açıklayabilirseniz arkadaşlarımız size daha faydalı olabilirler.

İyi çalışmalar dilerim. 73

Bilal Ekmekci, TA8A
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA4SO - 26 Şubat 2018, 14:02:03
Dündar Bey,

Bilal Amca ve diğer arkadaşlar da belirtmişler. Ben de müsadenizle size ve Arduinoya meraklı amatör arkadaşlara bir kaç konuyu yazmak isterim. Arduino güzel bir Platform. Bizi başta Atmel olmak üzere PIC, TI ve ARM tabanlı bir bir çok işlemci veya mikrokontrolcünün donanımından soyutlayarak daha basit ve hızlı bir programlama ara yüzü sunuyor. Fakat bu, bazı temellere sahip olmadan yine kolay olamıyor.

Başta PIC, Atmega veya STM serisi gibi ARM tabanlı bir mikrğkontrolcünün datasheetini ayrıntılı incelemek, özellikle giriş çıkış birimleri, timer ve kesme özelliklerine bunları kontrol eden registrylere hakim olmak lazım.

İkinci önemli kısım ise C dili üzerinde orta seviye bir bilgiye sahip olmak gerekiyor. Günümüzde bu sistemleri programlama için kullanılan en yaygın dil.

Temel elektronik bilgisi siz başta olmak üzere çoğu arkadaşımızın zaten bildiği bir konu olduğu için geçiyorum.

Tabii bunlar için zaman da lazım. Herşey bir anda maalesef olmuyor. Yıllar önce (ki 22 yıl olmuş) şimdikilere benzemeyen iyi bir Meslek Yüksek Okulunda (kendimde akademisyen olarak maalesef diyorum) Motorolanın 6502 işlemcisini ASM ile programlamış ve uygulamalar yapmıştık. Bir de BASIC programlama dili öğretmişlerdi. Ben onun üzerine yıllar boyunca yaklaşık 10 tane daha programlama dili öğrenmeye çalıştım ve PIClerden başlayarak günümüze kadar bütün işlemci vs çalıştım.

Yeni bir mikrokontrölcü vs çıksa hemen edinmeye çalışır, mümkünse deneme kartlarından (şu evaulation bord denilenlerden) alırım. İlla bir LED yakıp söndürmeyi denerim. Zaman olursa LCD sürer, sıcaklık vs okurum. Dolayısıyla baştan sağlam bir adım atınca teknolojiyi takip etmek çok zor olmuyor.

Günümüzde, sağolsunlar öğrenci arkadaşlar başta olmak üzere pek çok elektronikçi arkadaş güzel ve ayrıntılı dökümanlar hazırlıyorlar. Bunun yanında Çağlar hocamın belirttiği gibi güzel kitaplar da yazıldı. Ben Erdal Delebe'nin Projeler İle Arduino (http://www.dr.com.tr/Kitap/Projeler-Ile-Arduino/Erdal-Delebe/Egitim-Basvuru/Bilgisayar/urunno=0000000606566?gclid=EAIaIQobChMIsffXycLD2QIVDIuyCh1rbwWxEAQYBCABEgL_oPD_BwE (http://www.dr.com.tr/Kitap/Projeler-Ile-Arduino/Erdal-Delebe/Egitim-Basvuru/Bilgisayar/urunno=0000000606566?gclid=EAIaIQobChMIsffXycLD2QIVDIuyCh1rbwWxEAQYBCABEgL_oPD_BwE))  kitabını almıştım. Başvuru kaynağı olarak hep çevremde tutuyorum. Başta mikrokontrölcünün yapısı anlatılmış ve C dili hakkında orta seviye bir bilgi de verilmiş. Eğer aldığınız kitap bu değilse tavsiye edebilirim.

Arduino üzerinde internette örnek çok, hazır yapılarla pek çok şey hemen yapılabiliyor. Ama küçük de olsa bir modifikasyon gerekince işler zorlaşıyor. Bu nedenle herkese tavsiyem baştan başlayarak orta düzeyde bilgi edinmesi. Yine yardımcı olabileceğimiz bir şeyler olursa elimizden geleni yaparız.

Saygılarımla 73...
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 27 Şubat 2018, 07:10:16
İlhan Bey, yeni sayfayı açınca ilk işim "Tümünü Seç" ile tüm sayfayı temizlemek.  Ancak hep hata veriyor. ZIP ile Arduino sayfasına yüklediğim resmi siteden alınma library i başarıyla  arduino sayfasına yüklüyorum. kontrol ediyorum, <Yinede kitaplardan yazılımın ana hatlarını öğrendim>  library hatasız, ancak hata veriyor.
NOT: Okulda bilgisayar ve; "Flow Chart" öğrenmiştik.
Anlamadım gitti. Ancak inatçı biri olduğum için bir yılda da olsa çözeceğim.
Bir kitap yetersiz olduğu için ikinciyi aldım o daha yetersiz çıktı. Büyük kitabın  en üstünde "yeni başlayanlar için" yazıyor. Ona kandım zaten. Şadan bey önerdiğiniz kitabı hemen sipariş edeceğim. Sağolon.
Kitap ismi versem hukuki problem çıkar.
ben öğrendikten sonra kitap yazsam, hiç bilmeyen 2 günde öğrenir. Ne o adam programlama dilini detaylı anlatıyor. anlayana.
Sizlerinde başınızı ağrıtıyorum.

DENEMELERE DEVAM YILMAK YOK. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 27 Şubat 2018, 07:42:06
Not: Çokta başarısız değilim.
Blink tamam.
İsim yazdırma tamam,
Sayı saydırma tamam, hatta öyle ki arduino uno saymaya başladı (saniyede 200-300 sayma gibi) 14 saatte 67milyon saydı. Cihaza acıdım kapattım. Yokasa milyarları sayacak.
Bilal bey teşekkürler.

Arkadaşlar, birde şu var, ben program yazmak istemiyorum. Hazır programları arduino ya yüklemeye çalışıyorum. Olacak en basit iş, onu bile yapamıyorum. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 17 Mart 2018, 07:35:15
Değerli arkadaşlarım,
bu konuda başınızı çok ağrıttığımı biliyorum, ancak beni hoş görün. Sonuca ulaşabilmek için gayret içindeyim.

Problem şu:
Resmi siteden library'i zip format olarak bilgisayarımdaki Library dosyasına kopyalıyorum. Sonra arduino sayfasından librarydeki bu programı tıklıyorum. Sayfaya yükleniyor. Sonra sol üstteki tik i tıklayıp doğruluğunu kontrol ediyorum. Hatalı çıkıyor. Şimdiye kadar uyguladığım bütün prosedürler hata verdi. Yaptığım uygulama tarif edilen uygulamanın birebir aynısı. Ancak olmuyor. Sadece kendi örneklerindeki " hello world" doğrulanıyor.
Hata nerede olabilir?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 17 Mart 2018, 22:56:45

Ardunio den anlamam eğer pic'le çalışmak istersen 4x yada 2x lcd de çalışan örnek kod gönderebilirim
kodları derlemek için
MPLAB X IDE  ve xc8 kurulu olmalı .

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 20 Mart 2018, 12:05:46
Sait bey, pic ile çalışmak bir zevk.
Bahsettiğiniz program "si5351" vfo ile mi ilgili ? 
Öyle ise çok sevinirim. Hem 2 satırlı hemde 4 satırlı LCD programı çok iyi olur. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 20 Mart 2018, 18:23:07

Merhaba hocam

2x 16 yada 4x20 de çalışır.
bu örnek PIC18F452 için
MPLAB X IDE ve xc8 combiler kurulu olması lazım.


http://hcemkoc.com/2016/01/02/02-mplab-ve-xc8-kurulumu/
https://ozcanfatih.wordpress.com/2012/12/22/microchip-xc8-compiler-kurulum-ve-ilk-uygulama/

1:)

proje oluşturma:
MPLAB X IDE  yi açıyoruz
bu adımları takip ediyoruz
file. new projet, microchip embedded, Standalone Projet ,next
Family,Advanced 8bit MCUs,
Device pic18f452,
 next açılan pencereden pickit2 yada pickit3 ,next

açılan pencereden XC8 seçiliyor ,next

açılan pencereye Proje ismini yazıyoruz.
Browse den masa üstünü seçiyoruz, finiş diyoruz.
sağ tarafta köşede dosyalar oluşuyor ordaki Source Filese sağ tıklayıp new den c main fileyi seçiyoruz

file name ye main yazıyoruz finiş diyoruz

Source Files içinde main.c  isminde dosya oluşuyor  bu maini.c nin içindekilerin hepsini silip bu kodları yapıştırıyoruz.


2:)

yapılması gereken bir kaç ayar var.
Sağdaki oluşturduğun ana proje dosyasına sağ tıklayıp Properties seçiyoruz.
çıkan pencereden xc8 segmesine tıklıyoruz yanda açılan kutudan üstüteki çubuğa Preprocessin and messages se tıklayıp

optimizationu seçiyoruz.
açılan pencereden Adres gualifers den ignore yi seçiyoruz.
Operation mode den PRO yu seçiyoruz Apply ve OK diyoruz.

3:)
sag köşede ana dosyanın üzerine sağ tıklayıp build diyerek hex oluşturuyoruz. hex masa üstündeki proje kılasöründeki DIST

tin içinde.

Arm da sorunsuz çalışıyor. pic de  denemedim.
pic 5 volt si5351 3.2 volt sorun olabilir.SDA veSCL yi 1k direnç üzerinden bağlamak olurmu denemek lazım.

73


 


 
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 20 Mart 2018, 18:32:08
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// PIC18F452 Configuration Bit Settings 4 xpll ak tif 12mhz KTISTALLE 48MHZDE CALISIYOR.
#pragma config OSC = HSPLL      //
#pragma config OSCS = ON        //
#pragma config PWRT = OFF       // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOR = OFF         // Brown-out Reset Enable bit (Brown-out Reset enabled)
#pragma config BORV = 20        // Brown-out Reset Voltage bits (VBOR set to 2.0V)
#pragma config WDT = OFF         // Watchdog Timer Enable bit (WDT enabled)
#pragma config WDTPS = 128      // Watchdog Timer Postscale Select bits (1:128)
#pragma config CCP2MUX = OFF      // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1)
#pragma config STVR = ON        // Stack Full/Underflow Rack Full/Underflow will cause RESET)
#pragma config LVP = OFF        // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled)
#define _XTAL_FREQ 12000000 //12mhz istege gore 20mhz kadar olabilir
#ifndef uchar
typedef   unsigned char   uchar;
#endif
#ifndef ushort
typedef   unsigned short   ushort;
#endif
#ifndef uint
typedef   unsigned int   uint;
#endif
#ifndef ulong
typedef   unsigned long   ulong;
#endif
//////////////////LCD REGISTER AYARLARI////////////////////////////////////
#define      LCD_FIRST_ROW                    128
#define      LCD_SECOND_ROW                192
#define      LCD_THIRD_ROW                    148
#define      LCD_FOURTH_ROW                 212
#define      LCD_CLEAR                                1
#define      LCD_RETURN_HOME                 2
#define      LCD_CURSOR_OFF                   12
#define      LCD_UNDERLINE_ON                14
#define      LCD_BLINK_CURSOR_ON         15
#define      LCD_MOVE_CURSOR_LEFT      16
#define      LCD_MOVE_CURSOR_RIGHT    20
#define      LCD_TURN_OFF                         0
#define      LCD_TURN_ON                           8
#define      LCD_SHIFT_LEFT                       24
#define      LCD_SHIFT_RIGHT                     28
//////////////////////LCD  PORT AYATLARI///////////////////////////////////////////
#define LCD_RD7      LATBbits.LATB7       // D7
#define TRISRB7       TRISBbits.TRISB7
#define LCD_RD6      LATBbits.LATB6       // D6
#define TRISRB6       TRISBbits.TRISB6
#define LCD_RD5      LATBbits.LATB5       // D5
#define TRISRB5       TRISBbits.TRISB5
#define LCD_RD4      LATBbits.LATB4       // D4
#define TRISRB4       TRISBbits.TRISB4

#define LCD_EN        LATBbits.LATB3       // EN
#define TRISEN         TRISBbits.TRISB3

#define LCD_RS        LATBbits.LATB2       // RS
#define TRISRS         TRISBbits.TRISB2
///////////////STEP VE YUKARI   ASAGI BUTONU/////GIRIS OLARAK  AYARLANDI////
#define TRISC0 = 1;
#define TRISC1 = 1;
#define TRISC2 = 1;
#define  STEP       PORTCbits.RC0
#define  YUKARI    PORTCbits.RC1     
#define  ASAGI      PORTCbits.RC2
//////////////////////////////////////////////////////////////////////////////////////
#define SDA               LATBbits.LATB0        // port B0 CIKIS
#define SCK              LATBbits.LATB1        // port B1 CIKIS
///////////////////BIR SIFIR AYARLARI/////////////////////////////////////////
#define Set_SDA_Low     SDA = 0                  // SDA KONUMU  data
#define Set_SDA_High    SDA = 1                  // SDA KONUMU
#define Set_SCK_Low     SCK = 0    // SCK KONUMU saat
#define Set_SCK_High    SCK = 1    //SCK KONUMU
//////////////////////////////////////////////////////////////////////////////////
#define I2C_Speed   40// I2C gecikmesi durma gore azaltilip cogaltila bilinir.
////////////////////////si5351/////////////////////////////////////////////////////////////
#define SYNTH_MS_0               42  // PPL A CIKIS Degeri 42
#define SI5351A_ADDRESS     192  //Aslinda 96   192 kullanmak gerekiyor
#define SI_CLK0_CONTROL       16   
#define SI_CLK1_CONTROL       17
#define SI_CLK2_CONTROL       18
#define SI_SYNTH_PLL_A       26
#define SI_SYNTH_PLL_B       34
#define SI_SYNTH_MS_0      42
#define SI_SYNTH_MS_1      50
#define SI_SYNTH_MS_2      58
#define SI_PLL_RESET    177
#define SI_R_DIV_1        0   
#define SI_R_DIV_2       16
#define SI_R_DIV_4       32
#define SI_R_DIV_8       48
#define SI_R_DIV_16       64
#define SI_R_DIV_32       80
#define SI_R_DIV_64      96
#define SI_R_DIV_128   112
#define SI_CLK_SRC_PLL_A   0
#define SI_CLK_SRC_PLL_B   32
#define XTAL_FREQ            25000000    //Kristal frekansi  25 YADA 27 MHZ FARKETMEZ
#define XTAL_LOAD_CAP          183     //10 pf ic kondansator aktiv  resisterin 183 une yazilacak
#define SI5351_CRYSTAL_LOAD_10PF         (3<<6)   //10pf ic kondansator
///////////////////////////////////////////////////////////////////////////////////////////
void Lcd_Init(void);
void Lcd_Char(char c);
void Lcd_Command(unsigned char command);//LCD COMMAND
void Lcd_yazi(unsigned char y, unsigned char x, const char *buffer);//harf sayi gostermek icin
void print(unsigned char y, unsigned char x, char *buffer);
/////////////////////// I2C ICIN FONKSIYONLAR  /////////////////////////////
void i2c_yaz( unsigned char byte); //baslangicta fonksiyon tanimliyoruz      
void i2c_init( void );   //baslangicta fonksiyon tanimliyoruz      
void i2c_basla( void ); //baslangicta fonksiyon tanimliyoruz            
void i2c_durdur( void );   //baslangicta fonksiyon tanimliyoruz         
void yaz(unsigned char RegisterAddresi, unsigned int  Registerdegeri);   
 ///////////////////////////////SI5351 ICIN FONKSIYONLAR//////////////////
void SetFreq(unsigned long frequency);
void kur_bolucu(unsigned char synth, unsigned long divider, unsigned char Div);      
void kur_pll(unsigned char pll,unsigned char mult,unsigned long num,unsigned long denom);   
void Delayms(unsigned int gecik);   
void Lcd_Delay5us(void);
void Lcd_Delay5500us(void);
///////////////////////////////////////////////////////////////////////////////////
void Lcd_Delay5us(void){
__delay_us(5);
__delay_us(5);   
}
void Lcd_Delay5500us(void){
__delay_us(5500);
}
 void Delayms(unsigned int gecik)   
    {   
       unsigned int i,j;   
           for(i=0;i<gecik;i++)
                    for(j=0;j<1500;j++);
    }
char step=4;    //baslangic step 1khz 
unsigned long long  frekans=7150000;   //baslangic frekansi   
unsigned char TempBuffer[60]=""; //LCD de yaziyi gostermek icin
//lcd portları
void  Lcd_Init(void){
unsigned char data;
TRISRB7 = 0;
TRISRB6 = 0;
TRISRB5 = 0;
TRISRB4 = 0;
TRISEN = 0;
TRISRS = 0;
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 0;
LCD_RD4 = 0;
LCD_EN = 0;
LCD_RS = 0;
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
for(data = 1; data < 4; data ++)
   {
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 1;
LCD_EN = 0;
LCD_RS = 0;
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 1;
LCD_EN = 1;
LCD_RS = 0;
Lcd_Delay5us();
Lcd_Delay5us();   
Lcd_Delay5us();
Lcd_Delay5us();
 Lcd_Delay5us();
Lcd_Delay5us();   
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 1;
LCD_EN = 0;
LCD_RS = 0;
   Lcd_Delay5500us();
  Lcd_Delay5500us();
Lcd_Delay5500us();   
Lcd_Delay5500us();
  Lcd_Delay5500us();
Lcd_Delay5500us();
}
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 0;
LCD_EN = 0;
LCD_RS = 0;
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 0;
LCD_EN = 1;
LCD_RS = 0;
Lcd_Delay5us();
Lcd_Delay5us();
Lcd_Delay5us();
Lcd_Delay5us();
Lcd_Delay5us();
Lcd_Delay5us();
LCD_RD7 = 0;
LCD_RD6 = 0;
LCD_RD5 = 1;
LCD_RD4 = 0;
LCD_EN = 0;
LCD_RS = 0;
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
Lcd_Delay5500us();
data = 40; Lcd_Command(data);
data = 16; Lcd_Command(data);
data = 1;  Lcd_Command(data);
data = 15; Lcd_Command(data);////lcd portları bitis
Lcd_Command(LCD_CURSOR_OFF);
}
void Lcd_Char(char c){
LCD_EN = 0; LCD_RS = 1;
LCD_RD7 = (c & 0b10000000)>>7;
LCD_RD6 = (c & 0b01000000)>>6;
LCD_RD5 = (c & 0b00100000)>>5;
LCD_RD4 = (c & 0b00010000)>>4;
_delay(5);
LCD_EN = 1;
Lcd_Delay5us();
Lcd_Delay5us();
LCD_EN = 0;
LCD_RD7 = (c & 0b00001000)>>3;
LCD_RD6 = (c & 0b00000100)>>2;
LCD_RD5 = (c & 0b00000010)>>1;
LCD_RD4 = (c & 0b00000001);
_delay(5);
LCD_EN = 1;
Lcd_Delay5us();
Lcd_Delay5us();
LCD_EN = 0;
Lcd_Delay5500us();
}
void Lcd_Command(unsigned char command){
LCD_EN = 0; LCD_RS = 0;
LCD_RD7 = (command & 0b10000000)>>7;
LCD_RD6 = (command & 0b01000000)>>6;
LCD_RD5 = (command & 0b00100000)>>5;
LCD_RD4 = (command & 0b00010000)>>4;
_delay(5);
LCD_EN = 1;
Lcd_Delay5us();
Lcd_Delay5us();
LCD_EN = 0;
LCD_RD7 = (command & 0b00001000)>>3;
LCD_RD6 = (command & 0b00000100)>>2;
LCD_RD5 = (command & 0b00000010)>>1;
LCD_RD4 = (command & 0b00000001);
_delay(5);
LCD_EN = 1;
Lcd_Delay5us();
Lcd_Delay5us();
LCD_EN = 0;
Lcd_Delay5500us();
Lcd_Delay5500us();
}
void print(unsigned char y, unsigned char x, char *buffer){
unsigned char data;
switch(y){
case 1: data = 127 + x; break; 
case 2: data = 191 + x; break;
case 3: data = 147 + x; break;
case 4: data = 211 + x; break;
default: break;}
Lcd_Command(data);
while(*buffer)               
     {
      Lcd_Char(*buffer);
      buffer++;             
     }
return;
}
void Lcd_yazi(unsigned char y, unsigned char x, const char *buffer){
unsigned char data;
switch(y){
case 1: data = 127 + x; break;
case 2: data = 191 + x; break;
case 3: data = 147 + x; break;
case 4: data = 211 + x; break;
default: break;}
Lcd_Command(data);
while(*buffer)           
     {
      Lcd_Char(*buffer);
      buffer++;           
     }
return;
}
void kur_pll(unsigned char pll, unsigned char mult, unsigned long num, unsigned long denom) 
{
   unsigned long P1; unsigned long P2; unsigned long P3;  //degiskenler p1,p2,p3
   P1 = (unsigned long)(128 * ((float)num / (float)denom));
   P1 = (unsigned long)(128 * (unsigned long)(mult) + P1 - 512);
   P2 = (unsigned long)(128 * ((float)num / (float)denom));
   P2 = (unsigned long)(128 * num - denom * P2); P3 = denom;
   yaz(pll + 0, (P3 & 0x0000FF00) >> 8);
   yaz(pll + 1, (P3 & 0x000000FF));
   yaz(pll + 2, (P1 & 0x00030000) >> 16);
   yaz(pll + 3, (P1 & 0x0000FF00) >> 8);
   yaz(pll + 4, (P1 & 0x000000FF));
   yaz(pll + 5, ((P3 & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16));
   yaz(pll + 6, (P2 & 0x0000FF00) >> 8);
   yaz(pll + 7, (P2 & 0x000000FF));
}
void kur_bolucu(unsigned char synth, unsigned long divider, unsigned char Div)   // konmaz
{
   unsigned long P1;               //ayar P1    degisken
   unsigned long P2;               // ayr P2    degisken
   unsigned long P3;               // ayarP3    degisken
   P1 = 128 * divider - 512;
   P2 = 0;    // P2 = 0, P3 = 1, bölücü için bir tam sayi
   P3 = 1;
                 yaz(synth + 0,   (P3 & 0x0000FF00) >> 8);
                 yaz(synth + 1,   (P3 & 0x000000FF));
   yaz(synth + 2,   ((P1 & 0x00030000) >> 16) | Div);
                 yaz(synth + 3,   (P1 & 0x0000FF00) >> 8);
   yaz(synth + 4,   (P1 & 0x000000FF));
   yaz(synth + 5,   ((P3 & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16));
   yaz(synth + 6,   (P2 & 0x0000FF00) >> 8);
   yaz(synth + 7,   (P2 & 0x000000FF));
}
   void SetFreq(unsigned long frequency)    //  (frequency degisken)
  {
   unsigned long pllFreq;             // degisken
   unsigned long xtalFreq = XTAL_FREQ;                        // degisken
   unsigned long l;                                            // degisken
   double  f;//float  f;                   // degisken
   unsigned char mult;                // degisken
   unsigned long num;                // degisken
   unsigned long denom;              // degisken
   unsigned long divider;                // degisken
                 divider = 900000000 / frequency;  //  Bölme orani 900000000                
   if (divider%2)                      //bolumden kalani eksilt
                 divider --;                        // Bir çift tamsayi bölme
   pllFreq = divider * frequency;       // hesapla bölücü
   mult = pllFreq / xtalFreq;       //pll çarpan 
   l = pllFreq % xtalFreq;          //Üç bölüm
   f = l;                           // tamsayi
   f *= 1048575;          // num ve denom, kesirli kisimlar, pay ve payda
   f /= xtalFreq;          //her biri 20 bittir (aralik 0..1048575)
   num = (ulong)f;             //çarpan mult + num / denom
   denom = 1048575;            // payda maksimum 1048575
   kur_pll(SI_SYNTH_PLL_A, mult, num, denom);            // pll ye git
   kur_bolucu(SI_SYNTH_MS_0, divider, SI_R_DIV_1);    //bolucuye git
   yaz(SI_CLK0_CONTROL, 0x4F | SI_CLK_SRC_PLL_A);   // yaz git A ciktisini ac
}
void i2c_init(void)            
   {      
Set_SDA_High;//   SDA = 1;   
Set_SCK_High;//   SCK = 1; 
   }
void i2c_basla( void ){      
  int i;
  Set_SDA_High;
  for(i = 0; i<I2C_Speed; ++i ); 
  Set_SCK_High;
  for(i = 0; i<I2C_Speed; ++i ); 
  Set_SDA_Low;
  for(i = 0; i<I2C_Speed; ++i ); 
  Set_SCK_Low;
  for(i = 0; i<I2C_Speed; ++i );
  for( i = 0; i<I2C_Speed; ++i );
  for(i = 0; i<I2C_Speed; ++i );
  for(i = 0; i<I2C_Speed; ++i );
  }     
//----------------- I2C -----------------------------------------------//
void i2c_durdur( void ){      
  int i;
  Set_SDA_Low;
  for(i = 0; i<I2C_Speed; ++i );     //gecikme I2C_Speed
  Set_SCK_High;
  for(i = 0; i<I2C_Speed; ++i );    //gecikme I2C_Speed
  Set_SDA_High;
  for(i = 0;  i<I2C_Speed; ++i );  //gecikme I2C_Speed
  for( i = 0; i<I2C_Speed; ++i );    //gecikme I2C_Speed
  for( i = 0; i<I2C_Speed; ++i );  //gecikme I2C_Speed
  for( i = 0; i<I2C_Speed; ++i );  //gecikme I2C_Speed
   }
void i2c_yaz( unsigned char byte ){   
  unsigned char temp=byte;
  int i,j;
    for(j = 0; j<8; ++j ){  //Beytleri taramak icin for dongusu
    for(i = 0; i<I2C_Speed; ++i )     //gecikmeyi ver
    if( (temp&0x80) == 0x80 )  //eger temp 0x80 se esitle 0x80 ne
     Set_SDA_High;       // bir yap      yukarda define ile tanimli (Set_SDA_High)
    else
      Set_SDA_Low;       // sifir yap yukarda define ile tanimli   (Set_SDA_Low)
    temp <<=1;      //sola yit
    for(i = 0; i<I2C_Speed; ++i ) //gecikme
    Set_SCK_High;
    for(i = 0; i<I2C_Speed; ++i )
    Set_SCK_Low;
  }
  TRISB0 = 1;  //8 inci bit icin SDA giris yapildi.
  for(i = 0; i<I2C_Speed; ++i )
  Set_SCK_High;
  for(i = 0; i<I2C_Speed; ++i )
  Set_SCK_Low;
  TRISB0 = 0; //SDA  cikis yapildi
}   
void yaz(unsigned char RegisterAddresi, unsigned int  Registerdegeri) 
   {
    i2c_basla();              // basla'ya gitI2C yi baslat
    i2c_yaz(SI5351A_ADDRESS); //i2c_yaza git  si5351nin adresini yaz (192 )   
    i2c_yaz(RegisterAddresi); //i2c_yaza git  ilk beyti sal
    i2c_yaz(Registerdegeri);  //i2c_yaza git  ikinci beyti sal
    i2c_durdur();             //i2c_durdura git durdur
  }
//LCDde frekans gostermek icin
void segmentler(unsigned long t, unsigned char *str, unsigned char n)   
    {       
   unsigned char a[12]; int i, j;                                         
                a[0]= (t/100000000000)%10;                                             
                a[1]= (t/10000000000)%10;
                a[2]= (t/1000000000)%10;                                         
                a[3]= (t/100000000)%10;                                           
                a[4]= (t/10000000)%10;                                           
                a[5]= (t/1000000)%10;                                             
                a[6]= (t/100000)%10; 
                a[7]= (t/10000)%10;                                         
                a[8]= (t/1000)%10;                                           
                a[9]= (t/100)%10;                                           
                a[10]=(t/10)%10;                                             
                a[11]=(t/1)%10;
        for(i=0; i<12; i++) a=a+'0';                                                               
        for(i=0; a=='0' && i<=4; i++);                                 
        for(j=12-n; j<i; j++) { *str=' ';    
       if ((j == 8) || (j == 5)) *++str = 46; str++; }   //46 noktayi temsil eder ornek 7.155.000                                                          
        for(; i<12; i++)  { *str=a;
       if ((i == 8) || (i == 5)) *++str = 46;  str++; }   //46 noktayi temsil eder ornek 14.155.000   
                *str='\0'; }
        void  main()
  {      
TRISA=0x00; 
TRISB=0x00;  //
TRISC = 0x07;// 1 2 ve 3 pini giris digerleri cikis
 PORTA=0x00;PORTB=0x00; PORTC=0x00;   //portlar temizledi
  Lcd_Init();
  Lcd_Command(LCD_CLEAR);
  Lcd_Command(LCD_CURSOR_OFF);
     i2c_init();                                        
      Lcd_yazi(2,2, "Yasa"); //harf sayi gostermek icin
      Delayms(1200);Delayms(1200);
     yaz(XTAL_LOAD_CAP,SI5351_CRYSTAL_LOAD_10PF);  //25mhz nin kristalin 10 pf sini aktiv et(XTAL_LOAD_CAP)              
     Lcd_yazi(2,2, "1 khz   ");   
     SetFreq(frekans);   //SetFreq fonksiyona git icindeki isleri yap
     segmentler(frekans,&TempBuffer[0],10);
     print(1, 2, &TempBuffer[0]);  Delayms(200);   
     while(1)   // while nin arasina calisacak  gorevler yazilir
       {           
     if(STEP== 0) { step++;   if (step>7) step=1; Delayms(800);     
          if(step== 1) { Lcd_yazi(2,2, "1 hrz   ");   }
          if(step== 2) {Lcd_yazi(2,2, "10 hrz  ");   }
          if(step== 3) { Lcd_yazi(2,2, "100 hrz "); } 
          if(step== 4) {Lcd_yazi(2,2, "1 khz   ");   }
          if(step== 5) {Lcd_yazi(2,2, "10 khz  "); }
          if(step== 6) {Lcd_yazi(2,2, "100 khz "); } 
          if(step== 7) {Lcd_yazi(2,2, "1 mhz   "); }  }       
     if(ASAGI== 0)  { Delayms(200);
          if(step== 1) {frekans=frekans - 1; }
          if(step== 2) {frekans=frekans - 10;   }
          if(step== 3) {frekans=frekans - 100;  } 
          if(step== 4) {frekans=frekans - 1000;   }
          if(step== 5) {frekans=frekans - 10000;   }
          if(step== 6) {frekans=frekans - 100000;   }     
          if(step== 7) {frekans=frekans - 1000000;   } 
          if(frekans >1600000000 ) frekans=0; 
      if(frekans <1 )  frekans=0 ;     
          SetFreq(frekans);   //SetFreq fonksiyona git icindeki isleri yap
     segmentler(frekans,&TempBuffer[0],10);    // lcdde_frekansgoster
     print(1, 2, &TempBuffer[0]);  ;Delayms(200);  }  //buton gecikmesi   
    if(YUKARI== 0) { Delayms(200);
         if(step== 1) { frekans=frekans +1; }
         if(step== 2) {frekans=frekans +10;  }
         if(step== 3) { frekans=frekans +100;  } 
         if(step== 4) { frekans=frekans +1000;  }
         if(step== 5) {frekans=frekans + 10000;  }
         if(step== 6) {frekans=frekans + 100000;  }     
         if(step== 7) {frekans=frekans +1000000;   }
         if(frekans >1600000000 ) frekans=0;
      if(frekans <1 )  frekans=0 ; 
         SetFreq(frekans);   //SetFreq fonksiyona git icindeki isleri yap
    segmentler(frekans,&TempBuffer[0],10);  // lcdde_frekansgoster
     print(1, 2, &TempBuffer[0]);   Delayms(200);  }  //buton gecikmesi
      }
 }
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3ALS - 21 Mart 2018, 22:57:10
Sait Bey,  Ben denemiştim, çalıştı. Daha sonraları iki kanalı da çalıştırdım. Pic' i 3.3 voltla besledim. LCD de 3.3 volt ile görüntü silik çıktığından 3 nolu uca 3k3 üzerinden bir pil ile -1.5 volt uyguladım.

Bu vesile ile C ye başlamış olmamdan dolayı size çok teşekkür ederim.

2*16 LCD yetersiz kaldığından elimde bulunan ili9341 çipli 2.8" grafik lcdyi kullandım. Bulabildiğim bir kütüphane dosyası ile epeyce cebelleştikten sonra  çalıştırdım. Fakat bir sıkıntı var,spi frekansını en hızlı seçmeme rağmen yavaş kalmakta. Sadece değişen haneleri tazeleyerek hızı yüksek tutmak için çalışıyorum. Ama sonuç tatmin etmeyecek gibi. Bu nedenle ARM a geçmeye karar verdim.

Son durum bu.









Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 22 Mart 2018, 13:15:33
Merhaba hocam
PIC ile güzel iş yapmışsın maşallah çok hızlısın hocam .ARM mı kullanacaksan derleyiciyi EmBitz  (https://www.embitz.org/ )(50mb)kullanmanı öneririm ücretsiz ara yüz güzel ctrl fare tekerleği ile yazı boyutunu rahatça ayarlıyorsunuz.
Kullanacağınız arm da ram biraz fazla olmalı ayrıca FSMC gibi bir donanım var hızlı (8bit yada 16 bit)direk lcd yi sürmek için.benim incelediğim 64 pinlerde bu donanım yok 100 pin ve üstlerinde var.
spi ile sürülen lcd bendede var kullanmadım 16 bit kullanıyorum si5351 o I2C ile sorunsuz.
En fazla sıkıntı lehimlerken çekiyordum normal lehim ve pasta kullanıyordum bu da pinleri tam tutmuyor fazla ısıdan birkaç tanesinin pinlerini bozdum.sonunda kırem lehim aldım çok rahat ve pinler tam lehimlendi 144 pine bir kibrit başı büyüklüğündeki kırem lehim yetiyor.ben sıkıntı çektiğim için bunları yazıyorum.



73

Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA8A - 22 Mart 2018, 16:43:21
Sait Bey,

Uzun programınızı bir kaç satır kısaltabilir miyim acaba dedim.

Programınızın içerisinde aşağıdaki 7 satır bulunmaktadır.

         if(step== 1) { frekans=frekans +1; }
         if(step== 2) {frekans=frekans +10;  }
         if(step== 3) { frekans=frekans +100;  }
         if(step== 4) { frekans=frekans +1000;  }
         if(step== 5) {frekans=frekans + 10000;  }
         if(step== 6) {frekans=frekans + 100000;  }     
         if(step== 7) {frekans=frekans +1000000;   }


yukarıdaki 7 satır yerine aşağıdaki bir satırı dener misiniz? Eğer çalışırsa "eksili" olan grupta da kullanabilirsiniz.

         frekans=frekans+(pow(10,(step-1));


"pow" fonksiyonu sanırım math.h kütüphanesindedir. İyi çalışmalar dilerim. 73

Bilal Ekmekci, TA8A
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 22 Mart 2018, 19:12:55
Bilal hocam selam

Girilen sayının yeni sayı kadar değerinin hesaplanması pow üs alma.
çalışıyor fakat tam sayı vermiyor kesirli sayılar veriyor.18kb hex 25kb oldu .
frekans=frekans+pow(10,(step-1));
Başka türlüde yapılabilir anlaşılır olsun diye öyle yazdım.

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA8A - 24 Mart 2018, 10:54:13
Sait bey,

Anladım. Size kolay gelsin. Sağlıcakla kalınız. 73

Bilal Ekmekci, TA8A
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2AKY - 24 Mart 2018, 17:29:40
Bilal hocam selamlar
önerinize uyarak söyle yaptım .
73

void yukariasagi( char b )   {
    if(step== 1) { if(b== 0) {  frekans-=1;  }else {  frekans+=1; }  tp_ayar();}
    if(step== 2) { if(b== 0) {  frekans-=10;  }else {  frekans+=10; }   tp_ayar();}
    if(step== 3)  {if(b== 0) {  frekans-=100;  }else {  frekans+=100; }  tp_ayar();}
    if(step== 4) { if(b== 0) {  frekans-=1000;  }else {  frekans+=1000; }  tp_ayar();}
    if(step== 5) { if(b== 0) {  frekans-=10000;  }else {  frekans+=10000; }  tp_ayar();}
    if(step== 6) { if(b== 0) {  frekans-=100000;  }else {  frekans+=100000; }  tp_ayar();}
    if(step== 7)  {if(b== 0) {  frekans-=1000000;  }else {  frekans+=1000000; }  tp_ayar(); }   
}

void tp_ayar(void)
{
      if(frekans >160000000 ) { frekans=160000000; } 
    if(frekans >1000) { //1000 den büyükse çalış
        SetFreq(frekans); segmentler(frekans,&TempBuffer[0],10);  print(1, 2, &TempBuffer[0]); }   
    }                   


void step_ayar(void)
{
  if(STEP== 0) { step++;   if (step>7) step=1; Delayms(800);     
  if(step== 1) { Lcd_yazi(2,2, "1 hrz   ");} if(step== 2) {Lcd_yazi(2,2, "10 hrz  ");} 
  if(step== 3) { Lcd_yazi(2,2, "100 hrz "); } 
  if(step== 4) {Lcd_yazi(2,2, "1 khz   ");} if(step== 5) {Lcd_yazi(2,2, "10 khz  "); }
  if(step== 6) {Lcd_yazi(2,2, "100 khz "); } if(step== 7) {Lcd_yazi(2,2, "1 mhz   "); }  }                 
}
 

void  main( )  {
        
  unsigned int i,j;   
TRISA=0x00; 
TRISB=0x00;  //
TRISC = 0x07;// 1 2 ve 3 pini giris digerleri cikis
 //portlar temizledi
PORTA=0x00;PORTB=0x00; PORTC=0x00; 

     Lcd_Init();
     i2c_init();                                       
      Lcd_yazi(2,2, "Yasa"); //harf sayi gostermek icin
      Delayms(1200);Delayms(1200);
     yaz(XTAL_LOAD_CAP,SI5351_CRYSTAL_LOAD_10PF);  //25mhz nin kristalin 10 pf sini aktiv
     Lcd_yazi(2,2, "1 khz   ");   
     SetFreq(frekans);   //SetFreq fonksiyona git icindeki isleri yap
     segmentler(frekans,&TempBuffer[0],10);
     print(1, 2, &TempBuffer[0]);  Delayms(200);
   
     while(1)   // while nin arasina calisacak  gorevler yazilir
       {           
      step_ayar() ;       
     if(ASAGI== 0)  { Delayms(400); yukariasagi(0) ; }                   
     if(YUKARI== 0) { Delayms(400);yukariasagi(1) ; }
   
        }
      }     
     
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA8A - 24 Mart 2018, 21:13:43
Sait bey,
Elinize sağlık. Benim amacım if sayısını azaltmak ve zaten sınırlı gücü olan işlemcinin biraz daha rahatlaması idi. Sizin çözümünüzde satır sayısı azalmış. Fakat if sayısı fazla değişmemiş. İç içe geçmiş if ler haline gelmişler. Bu durum yani iç içe geçmiş if ler normal if lerden fazla yük haline gelebiliyor. Acaba üs aldıktan sonra çıkan rakamın yuvarlanması bir çözüm olabilir mi diye düşünüyorum.
Sağlıcaklra kalınız. 73
Bilal Ekmekci, TA8A
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 22 Haziran 2018, 21:28:44
Arkadaşlar, arduino ya bir süre ara vermiştim.
 DK7IH  arkadaşın sitesinde  yayınladığı 5 band  transceiver in şemadan layout unu çizip PCB yi basıp monte etmiş ve çalıştırmıştım. Aynı arkadaş sayfasında birkaç ay önce modaya uymuş ve adafruit si5351 arduino vfo yapmış ve library i paylaşmış. Daha önceki başka kişilerin hazırladığı library lerin %95 ini çalıştıramamıştım. Ancak DK7IH in 3 adet librari si nin tamamı yüklendi ve daha önceki programların asla çalıştıramadığı "adafruit si5351 vfo " çalıştı. Bir library  vfo1=112mhz, vfo2=14mhz
Diğer library vfo=7.100 mhz  sinyal üretiyor.
SORUM ŞU: LIBRARY OPTİK ENCODER İÇETİYOR. MEKANİK ENKODERİ ÇALIŞTIRMAK İÇİN NASIL BİR LIBRARY KULLANMALIYIM? YENİ LIBRARY İ MEVCUT PROGRAMIN NERESİNE YAPIŞTIRMALIYIM?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3ALS - 22 Haziran 2018, 22:15:42
pull up dirençleriyle çalışması gerekir.
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 24 Haziran 2018, 07:15:10
Pull up direnç bilmiyorum.
Örnek verirmisin?
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA2GC - 24 Haziran 2018, 09:35:20
Pull Up demek ,kullanılacak port'ta her hangi bir puls, yada değişiklik yok ise onu algılayabilmek için Logic seviyede High'te tutmaya yarar,kısacası Encoderin uygulandığı 2 pine 4K7...10K arası bir direnç takıp,diğer uçlarınıda +5 Volta vermek,
PullDown iise bunun tam tersidir,dirençlerin diğer ucu VCC yerine GND'ye verilir,işlemci bu pin'deki değişimleri anlar ve yorumlar.

batarya ile çalışılacak cihazlar ile bu dirençler,10K....47K arasında seçilir,tasarruf edebilmek için..

Optik Enkoderlerin bir çoğunda bu dirençler içinde bulunur,olmayanıda mevcuttur,

Enkoderler ikili Gray kod diye bir tablo üretir,mekanik imal edilmişlerde fırçalar yüzeye sürtünür,bu arada istenmeyen sıçramalar oluşur (Bounce,Glitch) ikil ikili atlayabilir,optik enkoderin içinde sıfır geçiş dedektörü ve karşılaştırıcı çipi mevcuttur,hata sıfıra yakındır,bunlar pahalı enkoderlerdir,içinde ZeroCrossing çipi olmayan ucuz optik encoderlerde mevcuttur,iki Led iki foto transistörden ibarettit..
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TB5X_SK - 24 Haziran 2018, 15:17:51
Hulusi bey Optik olan encoderler +5v istiyor .

Diger encoderi normal bağlayın çalışır diye düşünüyorum zira ben optik enkoderi normal dds e +5v vererek çalıştırmıştım.

73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 27 Haziran 2018, 11:44:57
Ve mutlu son.
Arduino'yu kısmen öğrendikten sonra "oled" ekran ve si5351 çalıştırdım,
bugünde si5351 ile birlikte Nokia5110 u da çalıştırdım.
si5351 sinyal üretiyor, Nokia5110 lu devre, mekanik   enkoder ile mükemmel çalışıyor. 73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA1AIG - 27 Haziran 2018, 12:48:29
Dündar bey sizin adınıza çok sevindim.
Bir zorluğu başarmanın mutluluğu paha biçilmez.
Kullandığınız sketch ve libray'leri burada paylaşırsanız
benzer zorluğu yaşayan arkadaşlara büyük bir iyilik edersiniz.
Tekrar tebrikler..

Sağlıcakla kalın
İlhan Güven, TA1AIG
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 27 Haziran 2018, 17:29:27
Sağolun İlhan bey,


DK7IH in sitesindeki OLED ekran için kütüphaneler  ile,
JA2GQP in sitesinde  NOKIA 5110 ekran kütüphaneleri sonuç verdi.
Bir önceki sayfada DK7IH in sonuç resimleri var!  73
Başlık: Ynt: Ardunio Nano- si5351
Gönderen: TA3IHD - 27 Haziran 2018, 17:36:02
İlhan bey, 6 ay uğraştım.
Sonunda başardım.