Nasıl sıfırlanır Arduino Uno yazılım tarafından: Yöntemler açıklandı

  • Yazılım sıfırlandı Arduino Uno Bu, fonksiyon işaretçileri kullanılarak veya dijital pin kullanılarak yapılabilir.
  • ATmega8U2'nin akış kontrolü sayesinde kartı USB ile bağladığınızda otomatik resetleme gerçekleşir.
  • İstenmeyen sıfırlamaları önlemek için Arduino kartında bir iz kesilerek bu sıfırlama devre dışı bırakılabilir.

Sahte Arduino-4 nasıl tanınır

Çoğu zaman, bir plaka ile çalışırken Arduino Uno, cihazın erişilmesi zor bir konumda olması veya işlemi kod içerisinde otomatikleştirmek istememiz nedeniyle fiziksel müdahale olmadan yeniden başlatılması gerekir. Neyse ki, bunu gerçekleştirmenin birkaç yöntemi var Sıfırla Arduino Uno yazılımlaHer birinin kendine özgü avantajları ve uygulamaları vardır.

Bu yazıda bir bilgisayarı yeniden başlatmanın farklı yollarını göreceğiz. Arduino Uno Kod aracılığıyla, fonksiyon işaretçilerinin kullanımından, harici bir sıfırlama oluşturmak için dijital pinlerin kullanımına kadar. Ayrıca, işleyişini de keşfedeceğiz. Seri port üzerinden bağlanıldığında otomatik sıfırlama ve projelerimizde sorunlara yol açması durumunda bundan nasıl kaçınabileceğimizi.

yeniden başlat Arduino Uno fonksiyon işaretçilerini kullanarak

Bir bilgisayarı yeniden başlatmak için en çok kullanılan yöntemlerden biri Arduino Uno koddan bir kullanımı var fonksiyon işaretçisi. Buradaki amaç, bir fonksiyon işaretçisine 0 bellek adresi atamak ve bunu çağırarak işlemcinin bir sistem sıfırlaması gerçekleştirmesini sağlamaktır. İlgili projeler hakkında daha fazla bilgi edinmek için şu adresi ziyaret edebilirsiniz: rehberi Arduino Uno.

Bu yöntemin temel kodu şu şekildedir:

String letra = "";  
int x = 2;  

void(* resetSoftware)(void) = 0;  

void setup(){  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      resetSoftware();  
    }  
  }  
}  

Bu durumda Seri Monitöre "v" harfi gönderildiğinde, kart değişkene 5 ekler x, yeni değeri yazdırır ve ardından sıfırlamayı çağırarak yürütür Yazılımı sıfırla(). Bu, mikrodenetleyiciyi sıfırlama düğmesine basılmış gibi başlangıç ​​durumuna döndürür. Diğer programlama yöntemleri için şuraya başvurabilirsiniz: Arduino'da millis kullanımına ilişkin kılavuz.

Sıfırlama Arduino Uno dijital PIN kullanarak

Yumuşak sıfırlamayı gerçekleştirmenin bir başka yolu da şudur: dijital bir pimi sıfırlama pimine bağlamak tabağın. Bu, çıkış pini (örneğin 10) ile Arduino'nun RESET pini arasındaki basit bir kablo ile gerçekleştirilir. Eğer bootloader'ı değiştirmeden hızlı bir çözüm arıyorsanız bu yöntem işinize yarayacaktır.

Bu metodun kodu şu şekildedir:

String letra = "";  
int x = 2;  

void setup(){  
  digitalWrite(10, HIGH);  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
  pinMode(10, OUTPUT);  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      digitalWrite(10, LOW);  
    }  
  }  
}  

Bu durumda Seri Monitör üzerinden "v" harfinin gönderilmesi 10 numaralı pinin mantık durumunu düşürür ve bu da kartta reset oluşmasına sebep olur. Önyükleyici kodunu değiştirmeden sistemi yazılım üzerinden yeniden başlatmanız gerektiğinde pratik bir alternatiftir. Arduino bağlantısı hakkında daha fazla bilgiye ihtiyacınız varsa, şu konuda okumanızı öneririz: ArduinoNano.

Seri port üzerinden bağlandığında Arduino'nun otomatik olarak sıfırlanması

Tabaklar Arduino Uno Seri port üzerinden bağlantı sağlandığında otomatik reset mekanizmasına sahiptirler. Bu durum, ATmega8U2 çipinin DTR hattının 100 nF kapasitör ile ATmega328 işlemcisinin reset hattına bağlanması nedeniyle gerçekleşir. DTR aktif edildiğinde, sıfırlama hattında Arduino'nun yeniden başlatılmasına neden olan bir darbe üretilir. Bu, OLED ekranları içerenler gibi birçok projede kullanışlı bir özelliktir; bunları aşağıda inceleyebilirsiniz: 0.96″ OLED ekranlara rehber.

Bu mekanizma, ön yükleyici daha kısa bekleme süresine sahip olacak ve manuel olarak sıfırlama düğmesine basmadan yeni programları yüklemeyi kolaylaştıracaktır. Ancak bazı durumlarda, kodun sürekli seri bağlantıya bağlı olması durumunda bu bir dezavantaj olabilir.

USB kullanırken otomatik sıfırlama nasıl önlenir

Arduino'yu bilgisayara bağladığınızda otomatik sıfırlama özelliği projenin çalışmasında sorunlara yol açıyorsa bunu devre dışı bırakmanın basit bir çözümü var. Plaka şunları içerir: kesilebilen küçük yol Bu davranıştan kaçınmak için. Bu değişiklik, elektronik temellerini biliyorsanız, aşağıda açıklandığı gibi kolayca yapılabilir. Adım motor sürücülerine rehber.

Bunu yapmak için, USB bağlantısının yakınındaki kartın alt kısmındaki izi bulmanız ve bir kesici veya neşterle kesmeniz yeterlidir. Eğer gelecekte otomatik yeniden başlatma özelliğinin tekrar aktif hale getirilmesi gerekirse, ray üzerindeki iki nokta arasına küçük bir jumper lehimlenerek tekrar aktif hale getirilebilir.

Otomatik sıfırlamanın nasıl devre dışı bırakılacağını bilmek, Arduino'nun bilgisayardan veri alırken nasıl davrandığı üzerinde daha fazla kontrol sağlar. Bir sıfırlamayı gerçekleştirmek için bu yöntemlere hakim olun Arduino Uno Elektronik projelerin geliştirilmesinde daha fazla esneklik sağlayarak, gömülü sistemlerin davranışlarının manuel müdahaleye gerek kalmadan otomasyonuna, hata ayıklamasına ve iyileştirilmesine olanak tanır.

Arduino gözlemcisi
İlgili makale:
Arduino Watchdog: Nasıl Çalışır?

İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.