Покажи участието

От тук може да видиш всички публикации на този потребител.


Публикации - booker

Страници: [1]
1
Ардуино (Arduino) / Arduino код?
« -: Май 08, 2013, 02:02:57 am »
Ето една програма направена за две минути-copy/paste от примера BlinkWithoutDelay!!!
#include <LiquidCrystal.h>
int sekund =0;
int minutes =0;
int hour =0;
int hour2 =0;
int day =0;
long previousMillis = 0;        
long interval = 999;        
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(20, 4);  
  lcd.setCursor(0, 0);  
  lcd.print("Timer");  
  lcd.setCursor(0, 1);
  lcd.print("Day:");
 }
 
 
 void loop()
{
  unsigned long currentMillis = millis();
 
if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;  
    sekund = sekund++;
   
    if (sekund>59) {
       sekund=0;
       minutes=minutes+1;
      }
    if(minutes>59){
       minutes=0;
       hour=hour+1;
      }
     if(hour>24)
     {
       hour=0;
      day=day+1;
     }
     if(sekund <= 9){
        lcd.setCursor(6, 2);
        lcd.print("0");
        lcd.setCursor(7, 2);
        lcd.print(sekund);
     }else{
       lcd.setCursor(6, 2);
       lcd.print(sekund);
     }
   
    if(minutes <= 9){
        lcd.setCursor(3, 2);
        lcd.print("0");
        lcd.setCursor(4, 2);
        lcd.print(minutes);
     }else{
       lcd.setCursor(3, 2);
       lcd.print(minutes);
     }
   
     if(hour <= 9){
        lcd.setCursor(0, 2);
        lcd.print("0");
        lcd.setCursor(1, 2);
        lcd.print(hour);
    }else{
       lcd.setCursor(0, 2);
       lcd.print(hour);
     }
   
    lcd.setCursor(4, 1);
    lcd.print(day);
    lcd.setCursor(2, 2);
    lcd.print(":");
    lcd.setCursor(5, 2);
    lcd.print(":");
   
  }
}  

Имай едно на ум, че процесора губи време да опреснява LCD и затова в моят случай long interval е 999ms!!!
И въпреки това пак ще има минимална грешка, няма да е швейцарски часовник, но все пак пилетата не се излюпват  на 21-я ден в точно определен час, минута и секунда.......

2
Ардуино (Arduino) / проблем на новак
« -: Април 30, 2013, 09:00:24 pm »
Ето ти работещ код:
int inkbutton = 2; // бутон за увеличаване
int dekbutton = 3; // бутон за намаляване
int ledPin = 9; // изход за мосфет
int value = 0;

 // variables will change:


 void setup()
 {
 pinMode(inkbutton, INPUT);
 pinMode(dekbutton, INPUT);
 }

 void loop()
 {
 // проверка бутон увеличаване
 if ((digitalRead(inkbutton)) == HIGH && value < 254)
 {
 // увеличаване на стойността
 value++;
 }
 // проверка бутон намаляване

 if ((digitalRead(dekbutton)) == HIGH && value > 0)
 {
 // намаляване на стойността
 value--;
 }
 // записване на стойността
analogWrite(ledPin, value);
 delay(10);
 }

За изход към MOSFET-a трябва да използваш един от PWM(pulse-width modulation) пиновете-3,5,6,9,10 и 11(Atmega328P)!!!

3
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 30, 2013, 12:02:41 am »
Не стига, че не можеш да направиш елементарна функция(lcd.print) и то с ардуино, ами се и сърдиш че те взимаме за незнаещ! Не искам нито да се заяждам нито да те обиждам, в по-горният ми пост ти дадох пример как да си направиш програмата и това 100% работи!!!!!!
Ето ти едно ВИДЕО от тази вечер да се убедиш в това което казвам!
Този код е същият който е и на клипчето с изключение на символите за кирилца, които са заместени с "Select item" и "You choose......."
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 9);

int relay1 = 8;
int button1= 10;
int button1status = 0;


void setup() {
  lcd.begin(20, 4);
  pinMode(relay1, OUTPUT);
  pinMode(button1, INPUT);
 }

void loop() {
 button1status = digitalRead(button1);

 lcd.setCursor(0, 0);
 lcd.print("Select item:");

if(button1status == HIGH)
 {
 lcd.clear();
 digitalWrite(relay1, HIGH);
 lcd.setCursor(0, 0);
 lcd.print("You choose......");
 delay(2000);
 lcd.clear();
 } else {
 digitalWrite(relay1, LOW);
 }
}

Ако сега пак кажеш че кода не работи, значи "повредата е в твоя телевизор"-капиш!

едит: emil74 не го нападам, просто го съветвам преди да почва с проектите да си набави нужните познания. В нета изобилства от готови програми за ардуино от които може да се научи много.....Той ако не може да се справи с една елементарна команда която я има и в примерите дори, какво да говорим за управление на графични дисплеи, GSM модеми и др. Казвам всичко това с най-добри чувстава! :D

4
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 07:33:23 pm »
От това по-лесно няма на кьде........!!!!
Преди да започнеш с предлагането на артикули, седни да се образоваш......., поне малко!
Провери свьрзването на  lcd, използвай примерите от библиотеката, променяй ги и така ще свикнеш с командите и с използването им спрямо нуждите ти!
Относно вьпроса ти:

if(button1staus == HIGH)
{
lcd.clear();
digitalWrite(relay1, HIGH);
lcd.setCursor(0, 0);
lcd.print("You choose......");
delay(2000);
lcd.clear();
} else {
digitalWrite(relay1, LOW);
}

едит: Пиша от андроид с руска клавиатура и затова ми " бягат" някои букви!

5
Ардуино (Arduino) / "Arduino и "ATTiny 85"
« -: Април 07, 2012, 08:43:20 am »
10μF електролит между (-) и ресет на Arduino(The capacitor is needed if you’re using an Arduino Uno, and might also be necessary for an Arduino Duemilanove.)

Тези дни се заиграх с Attiny 45-85 и с малко промени по WirtualWire успях да oсъществя комуникация между двата контролера с помоща на RF-link 433MHz. Kонтролера(трансмитера) се прави със SLEEP с консумация 0.1μА stand-by и с подходяща батерия може да изкара доста време!!!

Също така подкарах Attiny45 като дигитален терморегулатор!
Използвах LCD 20x4 + HEF4094(Shift bus register) и 10кОм термистор!
В началото не вярвах че това нещо ще проработи, но за мое голямо учудване си работи доста добре!
Gigital thermostat

Страници: [1]