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

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


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

Страници: [1]
1
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 30, 2013, 11:34:44 am »
Това за 7805 е много полезна информация :) Благодаря ... Мен обаче доста ме домързя и си купих готов модул с 4 релета - чиста работа , иначе бих ползвал TIP 122 Дарлингтън  - 5V и 20-30 mA са напълно достатъчни за да се отпуши.
  Относно хардуера ... това не се брои  :D . Благодаря отново  :clap:

П.П. Чакам тези дни от Китай да дойде Coins Acceptor-а и да завърша кода...ако срещна затруднения ще пиша ... пък и да не срещна ще го публикувам за другите ентусиасти които се захванат с правенето на vending машина. Поздрави

2
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 30, 2013, 12:20:55 am »
Мамка му ... открих проблема ... не е в кода а в захранването - понеже захранвам само от USB явно не достига достатъчно ток до дисплея когато през това време работи релето и електромоторчето към него. При захранване от 12V предполагам, че ще се реши проблема. Ще видя утре да си купя. Благодаря за помощта момчета

3
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 30, 2013, 12:08:34 am »
И така не става  :? ... релето се задейства, но на дисплея само бледо се оцветяват всички пиксели на клетките на първия ред ... Възможно ли е проблема да е в това че ползвам само 4-те от 8-те пина на дисплея за пренос на данни ?

4
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 09:36:33 pm »
emil74 Хардуерът си ми работи и кодът който ти ми пусна си изкарва съобщението ... вие май и двамата ме взехте за пълен идиот ... проблемът идва когато print-вам в IF ....капиш ?

5
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 09:32:50 pm »
Благодаря за отговорите момчета,но booker айде преди да ми обясниш колко необразован съм :roll:   да прочетеш какво написах в началото , а именно:
 "Пробвах в блоковете "if" да използвам


lcd.setCursor(0,0);
lcd.print(".........");


, но уви - опресняването става или прекалено бързо или прекалено бавно и в крайна сметка пикселите на lcd-то само леко променят контраста си без да изобразяват нещо."

...та варианта който ти ми предлагаш вече го пробвах ... Нямам проблем с дисплея и контраста. Може би трябва да създам отделна функция за print-ване на lcd-то и да я извиквам в блока if или да създам counter който да отброява колко пъти се изпълнява командата lcd.print така че да я изпълни само един път. Някой друг да има идея ?

6
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 11:55:50 am »
Здравейте... създавам vending машина с четири слота. Целта ми е при натискане на един от четирите бутона да се активира бубината на реле, което от своя страна е ключ към захранващата верига на електромоторче с редуктор. До тук всичко е ок ... проблемът е в това, че искам всички действия да бъдат print-вани на lcd дисплей (16x2) т.е. ако няма натиснат бутон на дисплея да пише "Моля изберете артикул" , а след като някой от четирите бутона бъде натиснат и докато релето сработва да се изписва да речем "Вие избрахте Артикул 1" или артикул 2,3,4. Ето кодът с управлението на релетата:

#include <LiquidCrystal.h>

int relay1 = 22;
int relay2 = 23;
int relay3 = 24;
int relay4 = 25;
int button1= 30;
int button2= 31;
int button3= 32;
int button4= 33;
int button1status = 0;
int button2status = 0;
int button3status = 0;
int button4status = 0;
LiquidCrystal lcd(50, 51, 44, 45, 46, 47);

void setup() {
  lcd.begin(16, 2);
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);
 
}

void loop(){
button1status = digitalRead(button1);
button2status = digitalRead(button2);
button3status = digitalRead(button3);
button4status = digitalRead(button4);

if(button1status == HIGH){
  digitalWrite(relay1,HIGH);
  delay(2000);
}else{
  digitalWrite(relay1,LOW);
}

if(button2status == HIGH){
  digitalWrite(relay2,HIGH);
  delay(2000);
}else{
  digitalWrite(relay2,LOW);
}

if(button3status == HIGH){
  digitalWrite(relay3,HIGH);
  delay(2000);
}else{
  digitalWrite(relay3,LOW);
}

if(button4status == HIGH){
  digitalWrite(relay4,HIGH);
  delay(2000);
}else{
  digitalWrite(relay4,LOW);
}


Пробвах в блоковете "if" да използвам


lcd.setCursor(0,0);
lcd.print(".........");


 , но уви - опресняването става или прекалено бързо или прекалено бавно и в крайна сметка пикселите на lcd-то само леко променят контраста си без да изобразяват нещо.

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