ינשוף מדבר

תוכנית:

#include <Wire.h>  // ספריות

#include <LiquidCrystal_I2C.h>

#include <SPI.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);  // הפעלת מסך התצוגה

int limit, value, bac;

int DOUTpin=8, AOUTpin=A0;

const int buttonPin = 7;   

int buttonState = 0; // הגדרת כפתור

const byte POWERUP = B00100000;  // נתונים לרכיב השמעה וההקלטה

const byte SETREC = B10100000;

const byte REC = B10110000;

const byte SETPLAY = B11100000;

const byte PLAY = B11110000;

const byte STOP = B00110000;

int redPin = 2, greenPin = 3, bluePin = 4;

void setup() { 

  pinMode(redPin, OUTPUT);

  pinMode(greenPin, OUTPUT);

  pinMode(bluePin, OUTPUT); 

  pinMode(DOUTpin, INPUT);

  pinMode(SS, OUTPUT);

  SPI.begin();

  SPI.beginTransaction(SPISettings(140000, LSBFIRST, SPI_MODE0)); // הגדרת ISD4004

  digitalWrite(SS, LOW);

  SPI.transfer(POWERUP);

  digitalWrite(SS, HIGH);

  delay(50);

  digitalWrite(SS,LOW);

  SPI.transfer(0x01); 

  SPI.transfer(0x01); 

  SPI.transfer(SETPLAY);

  digitalWrite(SS, HIGH);

  digitalWrite(SS, LOW);

  SPI.transfer(PLAY);

  digitalWrite(SS, HIGH);

  delay(12000);

  setColor(0, 0, 255); } // blue

void loop() {{

  delay(1000);}

  value=analogRead(AOUTpin);  // חיישן האלכוהול פועל בצורה אנלוגית

  bac=value*0.21; { // חישוב רמת האלכוהול

  lcd.begin(); // הפעלת מסך

  lcd.backlight();

  lcd.setCursor(0,0);

  lcd.print(" Alcohol level:");

  lcd.setCursor(0,1); // שורה נוספת

  lcd.print("       ");

  lcd.print(bac);

  lcd.print(" mg/L");

  delay(320); }

  pinMode(buttonPin, INPUT); // כפתור מקבל מידע

  buttonState = digitalRead(buttonPin); // פועל בצורה דיגיטלית

  if(buttonState==HIGH){

   if (bac > 239){

  setColor(255, 0, 0);  // red

  digitalWrite(SS, LOW);

  SPI.transfer(POWERUP);

  digitalWrite(SS, HIGH);

  delay(50);

  digitalWrite(SS,LOW);

  SPI.transfer(0x03); // יפעיל השמעה שאתה שתוי

  SPI.transfer(0x03); 

  SPI.transfer(SETPLAY);

  digitalWrite(SS, HIGH);

  digitalWrite(SS, LOW);

  SPI.transfer(PLAY);

  digitalWrite(SS, HIGH);

  delay(3000);}

else {

  setColor(0, 255, 0);  // green

  digitalWrite(SS, LOW);

  SPI.transfer(POWERUP);

  digitalWrite(SS, HIGH);

  delay(50);

  digitalWrite(SS,LOW);

  SPI.transfer(0x02); // יפעיל השמעה שאתה נקי

  SPI.transfer(0x02);

  SPI.transfer(SETPLAY);

  digitalWrite(SS, HIGH);

  digitalWrite(SS, LOW);

  SPI.transfer(PLAY);

  digitalWrite(SS, HIGH);

  delay(3000);}}}

  void setColor(int red, int green, int blue){

  #ifdef COMMON_ANODE // הגדרת הלד

    red = 255 – red;

    green = 255 – green;

    blue = 255 – blue;

  #endif

  analogWrite(redPin, red);

  analogWrite(greenPin, green);

analogWrite(bluePin, blue);  }

 

סיכומים נוספים:

אם לא נקלט הארדואינו וניסיתם מספר דרכים, הורידו את התוכנה הבאה: http://www.wch.cn/download/CH341SER_EXE.html זה יכניס לכם
רק בהדקים המסומנים P.W.M. ניתן לקבל P.W.M. .הדקים אלה משמשים יציאות. אלה ההדקים בארדואינו אונו
הדקים עם כניסות/יציאות דיגיטלים: port D - 0-7 port B - 8-13 הדקים עם כניסות/יציאות
דילוג לתוכן