Bir Arduino, mikroişlemci ve mikrodenetleyici arasındaki fark nedir? Ucuz bir rezistif dokunmatik ekran kullanmak için en iyi olanı belirlemeye çalışıyorum.
Bir Arduino, mikroişlemci ve mikrodenetleyici arasındaki fark nedir? Ucuz bir rezistif dokunmatik ekran kullanmak için en iyi olanı belirlemeye çalışıyorum.
Yanıtlar:
tipik olarak bir masaüstü bilgisayarda veya dizüstü bilgisayarda bulunur ve bir CPU ve harici bellek arabirimi ile SPI, I2C, UART, USB, LCD ve diğerleri gibi dış dünyaya bağlanmak için çeşitli G / Ç veri yolları içerir. Mikroişlemciler ayrıca bir saat sağlamak için harici bir kristale sahip olacaklardır.
Çoğu mikroişlemcinin çip üzerinde salt okunur belleği yoktur; bunun yerine anakartta ilk önyükleme kodunun bulunduğu harici bir yonga vardır. Intel tabanlı bilgisayarlarda buna Temel Giriş / Çıkış Sistemi (BIOS) adı verilir ve ayrıca ilk önyükleme koduna ek olarak G / Ç yordamları da bulunur. Önyükleme kodu, Açılış Sırasında Kendi Kendini Sınama (POST) yaparak başlar ve ardından önyükleme kodunun bir sonraki aşamasının nereye yükleneceğini görmeye çalışır - sabit diskten, CD'den (veya eski günlerde) bir disketten. Bu ikinci düzey önyükleme daha sonra işletim sistemini yükler. (Bazı sistemlerde üç düzey önyükleme kodu bile olabilir.)
Bazı mikroişlemciler (genellikle sınırlı önyükleme seçeneklerine sahip akıllı telefonlar ve tabletler için hedeflenenler), ilk önyükleme kodunu içeren az miktarda salt okunur belleğe sahiptir.
Önyükleme kodunu salt okunur olarak adlandırıyorum; aslında bazı sistemlerde güncellenebilir. Ancak bu oldukça risklidir; bir şeyler ters giderse, sistem artık önyükleme yapmayabilir.
Programlarını salt okunur bellekten yürüten mikrodenetleyicilerin aksine, mikroişlemciler önyüklendikten sonra programlarını harici RAM'e yükler ve oradan yürütür.
Öte yandan bir CPU, programı saklamak için salt okunur bellek, programın yürütülmesinde kullanılan değişkenleri depolamak için RAM ve dış dünyaya bağlanmak için çeşitli I / O otobüsleri içeren bağımsız bir tek çipli IC'dir. SPI, I2C, UART ve diğerleri. Tek başına, harici bir arayüz aracılığıyla bir PC'ye programlanmadan hiçbir programı çalıştıramaz. Mikrodenetleyici de bir saat sağlamak için harici bir kristale ihtiyaç duyabilir, ancak bazılarında dahili bir saat bulunur.
Bazı mikro denetleyiciler (Microchip'in PIC32 gibi) iki flash bellek bölümüne sahiptir; biri başlatma (önyükleme) kodunu tutmak ve diğeri uygulamayı saklamak için. Bu, uygulama kodunun yerinde güncellenmesini kolaylaştırır.
Amacınız için mikroişlemci değil, mikrodenetleyici kullanmak istersiniz. Mikrodenetleyici kullanmak için, kendi kartınızı tasarlamanız veya bir tür geliştirme kartı satın almanız gerekir.
bu tür bir karttır ve bir mikrodenetleyici, ATmega8, ATmega168, ATmega328, ATmega1280 ve ATmega2560 gibi tipik bir 8 bit AVR ve ayrıca çeşitli çevresel kartlarla arabirim oluşturmak için güç kaynakları, kristal ve dişi başlıklar içerir.
Bu çevre kartlarına kalkan denir ve üst üste istiflenecek şekilde tasarlanmıştır (kartların altında Arduino'nun kendisine veya başka bir kalkanı bağlamak için erkek pimler ve erkek pimleri kabul etmek için üstte dişi başlıklar vardır. üstüne yığılmış bir kalkan).
Örnek kalkanlar motor kontrol kartları, genel G / Ç kartları, röle kartları, Ethernet kartları ve tipik olarak dokunmatik ekranlı LCD'lerdir. Bununla birlikte, sadece algılama için (LCD olmadan) kullanılacak herhangi bir dirençli dokunmatik ekran bilmiyorum.
Yukarıda açıklanan donanıma ek olarak Arduino, Java ile yazılmış bir çapraz platform Entegre Geliştirme Ortamı (IDE) ile birlikte gelir. BASIC dilinin 50 yıl önce yaptığı gibi, sanatçılara ve diğer yeni başlayanlara programlamayı tanıtmak için tasarlanmıştır. Arduino için bir programa eskiz denir .
Arduino programları C veya C ++ ile yazılır, ancak ayrıntıların çoğu kullanıcıdan gizlenir: sürekli olarak döngü yapan (genellikle gömülü programlar için olan) bir program yapmak için yalnızca iki fonksiyonun (sistem tarafından çağrılır) tanımlanması gerekir.
setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off
IDE, ortak giriş / çıkış işlemleri için kullanılabilen "Kablolama" adlı bir yazılım kitaplığı ile birlikte gelir.
Arduino, Atmel AVR mikrodenetleyici içeren ve genellikle standart bir modelde bir dizi konektör sağlayan bir PCB'dir. Mikrodenetleyici tipik olarak bir programın ("taslak" olarak adlandırılır) bir bilgisayardan TTY seri bağlantısı (veya USB bağlantısı üzerinden sanal seri) üzerinden mikrodenetleyiciye yüklenmesine izin veren bir "önyükleyici" programı ile önceden programlanır.
Mikroişlemci, yalnızca merkezi bir işlem birimi (CPU) içeren bir IC'dir. IC, RAM, ROM veya diğer çevre birimlerini içermez. IC önbellek içerebilir ancak harici bellek olmadan kullanılabilecek şekilde tasarlanmamıştır.
Mikroişlemciler programları dahili olarak depolayamazlar ve bu nedenle açıldığında genellikle yazılım yüklerler, bu genellikle "firmware" in harici ROM'dan yüklendiği ve sonunda bir işletim sisteminin diğer depolama ortamlarından (örn. Sabit disk) yüklendiği karmaşık çok aşamalı "önyükleme" işlemini içerir ).
Genellikle kişisel bir bilgisayarda bulunur.
Mikrodenetleyici, bir miktar CPU veya bir miktar RAM, ROM ve diğer çevre birimlerini içeren bir IC'dir. Mikrodenetleyiciler harici bellek veya depolama olmadan çalışabilir.
Normalde, mikrodenetleyiciler ya bir PCB'ye lehimlenmeden önce programlanır ya da kişisel bir bilgisayara bağlı özel bir "programlayıcı" cihaz aracılığıyla Sistem İçi Programlama (ISS veya ICSP) konektörleri kullanılarak programlanabilir.
Tipik mikrodenetleyiciler tipik mikroişlemcilerden çok daha basit ve yavaştır, ancak ayrımın çoğunlukla ölçek ve uygulamalardan biri olduğuna inanıyorum.
Örneğin, temel çamaşır makineleri gibi basit cihazlarda bulunur.
"Arduino" bir yazılım geliştirme ortamı ve yazılım ortamının program geliştirebileceği birkaç mikrodenetleyici kartıdır. Kartların çoğu Atmel AVR mikrodenetleyicileri kullanıyor.
Arduino mikrodenetleyici tabanlı bir platformdur (UNO için ATMEGA 328). Genel olarak bir Mikro kontrolör, girişlerin algılanmasını gerektiren her şeye mikroişlemciden daha uygundur. Bunun nedeni, ATMEGA 328 gibi mikro denetleyicilerin voltajları algılamak için dijital dönüştürücülere (ADC) analog olması ve ayrıca dijital I / O'ların yanı sıra PWM çıkışlarına da sahip olmasıdır.
Arduino ile, acemiler için programlanması daha kolay olan ve destek ve kütüphaneler için iyi bir topluluğa sahip Arduino Dev sistemine de sahipsiniz.
Dirençli bir dokunmatik ekran potansiyometre gibi davranır; biri x için ve biri y için. Böylece bunları Arduino analog girişlerine koyabilirsiniz. Ayrıntılar için buraya bakın .
Başka bir seçenek gibi bir şeyle SPI veya I2C dönüştürmek olduğunu bu ve Arduino ile okuyun.
Her iki şekilde de Arduino'nun iyi bir seçim olduğunu düşünüyorum.
Arduino bir mikrodenetleyiciden (UNO versiyonunda ATmega328) oluşur. Böylece Arduino, mikrodenetleyicinin pinleri güzelce ayrılmış bir PCB, bir güç kaynağı, bir kristal ve bir yerleşik bellenimle USB bağlantısı için FTDI, böylece kendi IDE ile kolayca programlayabilirsiniz. Arduino bileşenleri hakkında bir liste: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq