Bildirim
Arduino ile ilgili sorularım var
Daha Fazla 
Bu Konudaki Kullanıcılar:
Daha Az 

2 Misafir - 2 Masaüstü

Giriş
Mesaj
-
-
"long" kelime anlamı olarak uzun demek. Bir değişken tanımlaması yapılırken kullanıldığında yazılan değişkenin sınırlarının genişlemesini sağlıyor. Mesela:
int x;
yazdığımızda x değişkeni 16 bitlik yer kaplıyor. Bu da x'in en fazla 2^16 = 32.767 değerini alabileceğini gösteriyor.
long int x;
yazıldığında x değişeni yerine 32 bit yani 2.147.483.647 tane farklı değer veya pozitif sayılarda maksimum bu değer yazılabilir. X değerine daha büyük bir sayı yazamazsınız çünkü hafızada x değişkeni için ayırılmış olan yere sığmaz.
Bir int tipi değişkeni başlangıçta 0'a eşitlemek bir güvenlik önlemi aslında. Tabi istediğiniz bir başka sayıya da eşitleyebilirsiniz ihtiyacınıza göre. Ben boş bırakılmasına karşıyım ama. Programlama dili eğer int tipinde belirlediğiniz x değişkeni için otomatik olarak 0 değerini atamıyorsa x'in değeri null yani boşluk, hiçbir şey, tanımsız olarak kalacaktır. Siz yazdığınız kodda x'i çağırıp işleme katmak istediğinizde eğer x'in değeri null ise işlem yapılamayacak, program çökecektir. Bu nedenle genellikle int tipi değişkenlere en başta bir değer ataması yapılır.
Şimdi şu attığınız fotoğrafı inceleyip ne yapıldığını yazayım.
Önce int tipinde tamsayi1, tamsayi2 ve tamsayisonuc değişkenleri oluşturulmuş. Sonra long int tipinde uzuntamsayi değişeni oluşturulmuş. Bu değişkenin long tipinde oluşturulmasının sebebi ileriki adımlarda yapılacak çarpma işlemi sonucunda ortaya çıkan sayının 16bitlik hafızaya sığmama ihtimali. 2 tane 16Bit yani 2^16 yani 32.767 sayısı çarpıldığında ortaya 32Bit yani 2^32 sayısı ortaya çıkar. Bu nedenle sonuç long tipi bir int değişkenine kaydedilecek.
Döngü içerisine girildi. Şimdi konsolda 12+5= yazıyor. Bu sayılar tamsayı1 ve tamsayı2 değişkenlerine atadığımız sayılarla aynı. Sonuç hesaplanıp ekrana sonucu yazdırılıyor.
Şimdi değişkenlere 1000 ve 1400 değerli atanmış. Toplama işlemi yapılıp ekrana yazdırılıyor.
Evet sıra geldi tip dönüşümü yapılmayan kısma. tamsayı1 ve tamsayı2 çarpılıp long tipinde oluşturduğumuz uzuntamsayı değişkenine atanıyor. Burada bir sorun yok. Aslında farklı tipteki değişkenleri birbirine eşitleyemezsiniz. Mesela bir string değişkeni int değişkenine atanamaz. Fakat burda durum farklı. İkiside int değişkeni. Fakat birisi daha geniş aralıklı değer alabiliyor o kadar. Yapılan işlem sonucu uzuntamsayı değişkenine sığdığı için sorun yok. Fakat siz 2 tane long tipi değişkeni çarpıp normal bir int değişkenine atmak isteseydiniz yine hatayla karşılaşacakstınız. Çünkü işlem sonucu normal bir int değişkeni içerisine sığmayacaktı.
Son olarak tip değişimine geldik. Burada işlem yaparken normal boyutlu int değişkenleri önce long boyutuna çevriliyor. Sonrasında çarpılıp uzuntamsayıya atama yapılıyor. Değişen bir şey olmayacak. Daha kolay anlaşılması açısından şöyle düşünebiliriz. Mesela 3 ve 4 sayısını toplayacağız. Sonuç 7 çıkar. Eğer 03 ve 07 sayılarını toplasaydık sonuç 07 olurdu. Yani yine 7 olurdu. Kitabın bu örnepinde yapılan tip değişimi de tam olarak böyle bir şey.
En son while(1) denilmiş ve bu haliyle sizin kafanızı karıştırmış. While kelimesinin türkçesi "iken"dir. Mesela while(1) = 1ken demek. Bu da şu anlama geliyor 1 olduğu sürece while fonksiyonunun parantezleri içinde ne yazıyorsa onu yap. Bu örnekte parantezler içinde hiçbir şey yok. O yüzden program hiçbir şey yapmıyor bir nevi bekliyor. Aslında while fonksiyonu kullanılırken while(x=1) gibi yazılır ki siz sonra x değişkeninin değerini değiştirip döngü içinden çıkabilin. Burada kısır (sonsuz) döngü oluşturulmak istendiğinden 1 yazılmış sadece.
Ekstra bir bilgi vereyim size. Bu kitabın yazarı arduinoyu c veya c++ dili öğretmeye çalışır gibi bir örnekle hazırlamış. Bu bence yanlış bir örnek ve sizin de kafanızı karıştırmış. Arduino bir yazılım dili değil. Haliyle toplama çarpma yaptırmak için kullanılmayacak. Sanki bir komut satırı kullanıyor gibi seri monitörü böyle cambazlıklarla bir arayüz haline getirmeyi yanlış buluyorum. Ha illa yapılacaksa detaylı bir şekilde açıklaması yapılmalı. Kısır döngü yazıp geçilmemeli ki daha işin başında olan arkadaşların kafası karışmasın. Size tavsiyem kitabı elinize alıp roman okur gibi okumayın. Bu şekilde yazılım öğrenilmez. Bilgisayarın başın geçin tek tek yazın kodları. Mesela while bloğunu silin. Bakın bakalım ne oluyor. Yazar onu niye oraya eklemiş? Merak edin, deneyin ve öğrenin. Kolay gelsin, başarılar diliyorum.
< Bu ileti DH mobil uygulamasından atıldı >
-
Sizin önereceğiniz bir kaynak var mı?
< Bu ileti DH mobil uygulamasından atıldı > -
Ben bu tip konularda basılı yayınları kullanmayı sevmiyorum. Zaten şimdiye dek gördüğüm tüm kitaplar benzer formatta hazırlanmıştı. Bu nedenle kitap önerisinde bulunamıyorum. Ancak linkini paylaştığım kaynakları okur, izler, uygularsanız daha kolay ve keyifli bir şekilde arduino'yu kullanmayı ve kodlamayı öğrenebilirsiniz. https://www.youtube.com/c/LezzetliRobotTarifleriTv/playlistsMeraklı Maymunyoutube
Arduino Nedir? - Çağan'la Arduino'ya Giriş 1https://www.youtube.com/watch?v=poBIqdAofxY&list=PL-U_jBeM2gfBvzPVdERtv5As-cm7y9FzWhttps://maker.robotistan.com/arduino-yazilim-kurulum/
Udemy üzerinde şuan ücretsiz olan Arduino eğitimleri
https://www.udemy.com/course/ardunio-ile-robotik-egitimi/https://www.udemy.com/course/arduino-ile-robotik-kursu/https://www.udemy.com/course/sezerduino/https://www.udemy.com/course/proteus-ile-arduino-dersleri/https://www.udemy.com/course/proteus-ile-arduino-dersleri-2/https://www.udemy.com/course/arduino-ile-robotik-kursu/
< Bu mesaj bu kişi tarafından değiştirildi zwanzig -- 24 Eylül 2020; 16:32:22 >
-
Teşekkür ederim hocam.
< Bu ileti DH mobil uygulamasından atıldı >
Sayfa:
1
Ip işlemleri
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X