Teema 1

//Kõik kasutatud funktsioonid lehe lõpus

1. Katse -LED dioodid ja RGB LED-

Komponentid:

  1. Led
  2. 3300 Takisti
  3. Juhe 3x

Töö kirleldus:

Kogemus plaadi ja LED-iga. Töö eesmärk on luua tinkercad emulaatoris tahvlilt jäädioodi töö imitatsioon koos töökoodi kirjutamisega c ++.

Skeem:

programi good:

// C++ code
//


void setup()
{
  pinMode(13, OUTPUT);//задаем два значения- номер порта и выход
}

void loop()
{
  digitalWrite(13, HIGH);//включение леда
  delay(1000); // Wait for 1000 millisecond(s) задержка
  digitalWrite(13, LOW);//выключение
  delay(1000); // Wait for 1000 millisecond(s) задержка
}

https://www.tinkercad.com/things/iOixmeRPO1d-fantabulous-elzing-jaiks/editel?sharecode=pWv936QrMd-0p44A1bxLAfyNxt0VH_-sJKniJz1upqw

Rakendus elus võib olla dioodi banaalne vilkumine, näiteks vanikul

RGB ledi ühendamine

Komponendid:

  1. RGB led
  2. 330 om takisti
  3. Juhe 6x

Töökirjeldus: õppige töötama rgb deoodiga, simuleerima deoodi näiteks vanikul, mis võib süttida erinevates värvides

Skeem:

Good c++:

const int RED_PIN = 11;
 
const int GREEN_PIN = 9;
 
const int BLUE_PIN = 10;
 
int DISPLAY_TIME = 100;  // переменная  по смене цветов  
 
void setup()
 
{
 
  pinMode(RED_PIN, OUTPUT);//выводим значения и выходы
 
  pinMode(GREEN_PIN, OUTPUT);
 
  pinMode(BLUE_PIN, OUTPUT);
 
}
 
void loop()
 
{
  
mainColors();
 
// 
 
// analogWrite() - градация яркости от 0 до 255
 
// showSpectrum ()- которая плавно проследует через каждыу  8 цветов
 
  showSpectrum();
 
}
 
void mainColors()
 
{
 
// Выкл. – все светодиоды выключены
 
  digitalWrite(RED_PIN, LOW);
 
  digitalWrite(GREEN_PIN, LOW);
 
  digitalWrite(BLUE_PIN, LOW);
 
 delay(1000);
 
// Включаем КРАСНЫЙ – RED_PIN, HIGH.
 
  digitalWrite(RED_PIN, HIGH);
 
  digitalWrite(GREEN_PIN, LOW);
 
  digitalWrite(BLUE_PIN, LOW);
 
  delay(1000);
 
// Включаем ЗЕЛЕНЫЙ – GREEN_PIN, HIGH.
 
  digitalWrite(RED_PIN, LOW);
 
  digitalWrite(GREEN_PIN, HIGH);
 
  digitalWrite(BLUE_PIN, LOW);
 
  delay(1000);
 
// Включаем СИНИЙ – BLUE_PIN, HIGH.
 
  digitalWrite(RED_PIN, LOW);
 
  digitalWrite(GREEN_PIN, LOW);
 
  digitalWrite(BLUE_PIN, HIGH);
 
  delay(1000);
 
// Включаем ЖЕЛТЫЙ – RED и GREEN HIGH.
 
  digitalWrite(RED_PIN, HIGH);
 
  digitalWrite(GREEN_PIN, HIGH);
 
  digitalWrite(BLUE_PIN, LOW);
 
  delay(1000);
 
// БИРЮЗОВЫЙ – GREEN и BLUE
 
  digitalWrite(RED_PIN, LOW);
 
  digitalWrite(GREEN_PIN, HIGH);
 
  digitalWrite(BLUE_PIN, HIGH);
 
  delay(1000);
 
//РОЗОВЫЙ – RED и BLUE
 
  digitalWrite(RED_PIN, HIGH);
 
  digitalWrite(GREEN_PIN, LOW);
 
  digitalWrite(BLUE_PIN, HIGH);
 
  delay(1000);
 
//БЕЛЫЙ – все цвета HIGH (Вкл.)
 
  digitalWrite(RED_PIN, HIGH);
 
  digitalWrite(GREEN_PIN, HIGH);
 
  digitalWrite(BLUE_PIN, HIGH);
 
  delay(1000);
 
}
 
// Ниже приведен код еще двух функций:  ShowSpectrum () и showRGB().  ShowRGB () - выводит один цвет на светодиод.  ShowSpectrum () выводит все цвета по очереди – радуга. 
 
void showSpectrum()
 
{
 
  int x;
 
  for (x = 0; x < 768; x++)
 
  {
 
    showRGB(x);  // Вызов RGBspectrum() сновым значением x
 
    delay(10);   // Пауза 10 ms (1/100 секунды)
 
  }
 
}
 

 
// 0 =красный 
 
// 255 = зеленый 
 
// 511 =  синий 
 
// 767 =  красный 
 
void showRGB(int color)
 
{
 
  int redIntensity;
 
  int greenIntensity;
 
  int blueIntensity;
 
  if (color <= 255)                
 
  {
 
    redIntensity = 255 - color;    // красный меняется из включенного на выключенный    
 
    greenIntensity = color;        // зеленый меняется из выключенного на включенный
 
    blueIntensity = 0;             // голубой всегда выключен
 
  }
 
  else if (color <= 511)          
 
  {
 
    redIntensity = 0;                     // красный всегда выключен
 
    greenIntensity = 255 - (color - 256); // зеленый от включенного к выключенному
 
    blueIntensity = (color - 256);        // голубой от выключенного к включенному
 
  }
 
  else if (color >= 512)             
 
  {
 
    redIntensity = (color - 512);         // красный выкл. К вкл.
 
    greenIntensity = 0;                   // зеленый всегда выкл.
 
    blueIntensity = 255 - (color - 512);  // голубой от вкл. К выкл.
  }
   
  analogWrite(RED_PIN, redIntensity);
 
  analogWrite(BLUE_PIN, blueIntensity);
 
  analogWrite(GREEN_PIN, greenIntensity);
  }

Selle kogemuse käigus õppisin rgb-dioodiga töötamist.

https://www.tinkercad.com/things/jtgogtgBzIk-incredible-amberis/editel?sharecode=osNwPCGrpGgjn1jY-RLcZt9iF5hoqerCInBt2C2EbUc

Ülesanne 1 Valgusfoor

On kasutatud:

  1. Plaat
  2. 7 juhtmed
  3. 5 led lampi
  4. c++ kood
  5. Arendusplaat

Töö kirjeldus: kogemus foori simulatsiooni loomisel, koodi kirjutamisel ja edasisel kasutamisel ArduinoIDE programmis

Ülesande täitmiseks kasutasin tincercadi veebisaiti, seadistasin tahvli ja terminali, olles teinud kõik vajalikud ühendused, kirjutasin järgmise koodi, mis simuleerib autodele ja jalakäijatele mõeldud foori, registreerisin ka öörežiimi, milles põleb ainult autofoori kollane tuli

Skeem:

C++ kood:

// C++ code
//

int redled1=11; //задаю переменные
int yellowled=10;
int greenled1=9;
int redled2=8;
int greenled2=7;



void setup()
{
  
  pinMode(redled1,OUTPUT);
  pinMode(yellowled,OUTPUT);
  pinMode(greenled1,OUTPUT);
  pinMode(redled2,OUTPUT);
  pinMode(greenled2,OUTPUT);
  
  
  
}

void day()//фукция для дневного режима
{
  digitalWrite(greenled2,HIGH);
  digitalWrite(redled1,HIGH);
  delay(10000);
  digitalWrite(redled1,LOW);
  digitalWrite(greenled2,LOW);
  
  digitalWrite(yellowled,HIGH);
  digitalWrite(redled2,HIGH);
  delay(1000);
  digitalWrite(yellowled,LOW);
  
  digitalWrite(greenled1,HIGH);
  delay(10000); //большая задержка, чтобы у машин было время проехать
  digitalWrite(greenled1,LOW);
  digitalWrite(redled2,LOW);
  
  digitalWrite(yellowled,HIGH);
  digitalWrite(redled2,HIGH);
  
  delay(1000);
  digitalWrite(yellowled,LOW);
  
  digitalWrite(greenled2,HIGH);
  digitalWrite(redled2,LOW);
  digitalWrite(redled1,HIGH);
  delay(10000);
  digitalWrite(redled1,LOW);
  digitalWrite(greenled2,LOW);
  

}

void night()//функция для ночного режима
{
  digitalWrite(yellowled,HIGH);
  delay(1000);
  digitalWrite(yellowled,LOW);
  delay(1000);//маленькая задержка так как это мигание
  
  digitalWrite(yellowled,HIGH);
  delay(1000);
  digitalWrite(yellowled,LOW);
  delay(1000);
  
  digitalWrite(yellowled,HIGH);
  delay(1000);
  digitalWrite(yellowled,LOW);
  delay(1000);


}



void loop()//запуск функций
{
  day();
  night();
}

Teos imiteerib valgusfoori, esimesed kolm lampi üleval on autofoor ja alumised 2 on jalakäijate foor, pärast seda, kui päevarežiim on meile kõigile teada, lülitatakse sisse öörežiim, milles ainult kollane värv põleb

https://www.tinkercad.com/things/dLJuWgaDe06-mighty-fyyran-rottis/editel?sharecode=lx-UC3yQkZijGpLumdwoKsaoWRbPM-kLCz36KCPEXW4

Video emulaatoris:

Pärast seda otsustasin selle päris tahvlil uuesti luua. Kasutasin Arduino IDe

Selles töös omandasin eelmises järgus robootika alased kogemused, hakkasin paremini mõistma tööpõhimõtet, õppisin koodi kirjutamise põhitõdesid c ++ keeles, õppisin elektroonikaga töötamist otseülekandes, mitte ainult emulaatoris.

Kasutatud funktsioonid:

  1. pinMode(pin, mode) – seab pinu režiimi (sisend/väljund).
  2. digitalWrite(pin, value) – seab pinu väljundväärtuseks (kõrge/madal).
  3. analogWrite(pin, value) – seab pinule analoogsignaali väljundväärtuseks.
  4. analogRead(pin) – loeb analoogsignaali sisendväärtuse pinult.
  5. delay(milliseconds) – viivitus (ootab määratud millisekundid).

Leave a Reply

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga