22 Ağustos 2019 Perşembe

Arduino

Arduino Hangi Programlama Dilini Kullanır
Arduino programla dili C++ dilini andırır ancak birebir aynısı da değildir. Açıklaması şöyle
The Arduino "language" is nothing more than a set of C++ functions and classes. It does not mandate any particular C++ standard.

The standard is dictated purely by the compiler that the core you are using happens to support (and is configured to use through command line flags).

Different cores use different compilers. Different versions of the same core use different compilers. Different compilers provide different C++ standard levels.

Most cores use GCC or some variant thereof. That could be anything from GCC 3.x.x through to the most recent release (whatever that is this week).
Uygulama İskeleti
Bir Arduino uygulaması iki temel metod'dan oluşur. Şöyle yaparız.
void setup() {
  ...
}

void loop() {
  ...
}
delay metodu
İçi şöyledir.
void delay(unsigned long ms)
{
  uint32_t start = micros();

  while (ms > 0) {
    yield();
    while ( ms > 0 && (micros() - start) >= 1000) {
      ms--;
      start += 1000;
    }
  }
}
Eğer belirtilen değer 0'dan büyükse işlemciyi kullanmaya devam eder. 0 ise açıklaması şöyle
If you pass 0 as the delay length then the delay() function essentially does nothing at all.
Örnek
Şöyle yaparız.
delay(10);
Örnek
Şöyle yaparız.
// wait 2 milliseconds before the next loop
// for the analog-to-digital converter to settle
// after the last reading:
delay(2);
SD Sınıfı
mkdir metodu
Şöyle yaparız.
if(SD.mkdir("vdfa/3143#2123/fasfd")){ 
  Serial.println("Succesfully created directory");
}
Digital Pin
digitalRead() HIGH veya LOW dönebilir.

Örnek
Şöyle yaparız
const int switchPin = 3;

void setup() {
  // put your setup code here, to run once:
  pinMode(switchPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (digitalRead(switchPin) == HIGH){
    Serial.println("on");
  }

  else{
    Serial.println("off");
  }
}
Örnek - pullup resistor
Şöyle yaparız
pinMode(switchPin, INPUT_PULLUP);  // engage the input pullup

Serial Sınıfı
Kalıtım
Bu sınıf Stream'den kalıttığı için istersek şöyle yaparız
Stream& SensorSerial = Serial;
Giriş
Bu sınıfı genellikle setup içinde açmak iyidir. Şöyle yaparız.
void setup()
{
  Serial.begin(115200);
  ...
}

void loop()
{
  ...
}
begin metodu
Örnek
Şöyle yaparız.
Serial.begin(9600);
Örnek
Şöyle yaparız.
Serial.begin(115200);
operator bool metodu
Şöyle yaparız.
void setup() {

  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  ...
}
print metodu
Şöyle yaparız.
float usecsPerIteration = ...;
Serial.print(usecsPerIteration);
println metodu
Şöyle yaparız.
Serial.println("Succesfully created directory");
read metodu
Şöyle yaparız.
// get the new byte:
char inChar = (char)Serial.read();
write metodu - char [] 
Şöyle yaparız.
#define NB_CHARS 100
uint8_t chars[NB_CHARS];
...
Serial.write(chars, NB_CHARS);
write metodu
Tek bir byte yazar. Açıklaması şöyle
Serial.write(val)
val: a value to send as a single byte
Şöyle yaparız.
long num = ...;
Serial.write(num);
String Sınıfı
C++'tagi std::string kullanılmaz. String sınıfı kullanılır.
Constructor
Şöyle yaparız
String code = "foo";
c_str metodu
Şöyle yaparız.
String msg = "..."
char charArr[1600];
strcat( charArr, msg.c_str() );
operator +
Şöyle yaparız.
String msg = "..."
char charArr[1600] = ...;
String temp = charrArr + msg; //Store result in a String


Hiç yorum yok:

Yorum Gönder