Arduino Polska Forum

Pełna wersja: Selektor audio na arduino uno + LCD
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witajcie ! 
Jestem żółtodziobem w temacie arduino, bardziej moją słabą stroną jest programowanie...

Chcę wykonać przełącznik audio dla 5 wzmacniaczy i jednej pary kolumn, wykorzystując przekaźniki (mam już odpowiednie 4 stykowe o dużej obciążalności, cewka 24v DC)

Można było by wykorzystać po prostu przełącznik 5 pozycyjny, podłączyć cewki przekaźników pod niego + zasilanie i zasadniczo gotowe. 
Lecz pomyślałem że fajnym "bajerem" byłoby wykorzystanie Arduino z wyświetlaczem hd44780.

I teraz można to zrobić na dwojaki sposób

1. Wykorzystać do tego arduino całkowicie, czyli podłączyć 5 przekaźników poprzez transoptory do wyjść arduino+wyświetlacz na magistrali I2C+enkoder

Program działał by w pętli
Na górnym wierszu byłby napis "Wzmacniacz"
na dolnym wierszu byłby aktualnie pracujący wzmacniacz np. Fonica WS503
enkoderem kręcąc gałką wybieraliśmy by jeden z pięciu wzmacniaczy i wciśnięciem przycisku akceptowali jego wybór.

Moje obawy odnoszą się tylko do sytuacji (może do takiej dojść?) w której kontroler by się zawiesił i uruchomił kilka przekaźników a ja jakimś cudem miałbym włączone kilka wzmacniaczy, zwierając je w tej chwili ze sobą....

Druga opcja wydaje się być prostsza, po prostu po odpowiednim zbiciu napięcia podać je na poszczególne piny arduino, czyli tradycyjny przełącznik obrotowy, i po prostu arduino przechwytuje mi z którego pinu jest napięcie i wyświetla napis, przykładowo na pinie A0 pojawiło się +5V czyli wzmacniacz to Radmor, na pinie A1 pojawiło się +5V to WS... itd.

Nie wiem które rozwiązanie wybrać zważywszy na możliwość awarii, czy raczej takie sytuacje zdarzają się rzadko ?

Gorszą sprawą jest stworzenie programu, gdzie jestem zielony...

Narazie wyskrobałem, pewnie idiotyczny zły kod gdyby to miało być 5 przycisków odpowiedzialnych za wybranie wzmacniacza
Huh
Pozdrawiam wszystkich serdecznie.

Kod:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);



void setup()
{
  lcd.begin(16, 2);
  Serial.begin(9600);
 
  int sw1 = 10 ;
  int sw2 = 9 ;
  int sw3 = 8 ;
  int sw4 = 7 ;
  int sw5 = 6 ;
 
  pinMode (sw1,INPUT);
  pinMode (sw2,INPUT);
  pinMode (sw3,INPUT);
  pinMode (sw4,INPUT);
  pinMode (sw5,INPUT);
}

void loop()
{
  int sw1 = 10 ;
  int sw2 = 9 ;
  int sw3 = 8 ;
  int sw4 = 7 ;
  int sw5 = 6 ;

  int sw1on = digitalRead(sw1) == HIGH;
  int sw2on = digitalRead(sw2) == HIGH;
  int sw3on = digitalRead(sw3) == HIGH;
  int sw4on = digitalRead(sw4) == HIGH;
  int sw5on = digitalRead(sw5) == HIGH;
 
    if (sw1on);
    {
    lcd.setCursor(0,0);
    lcd.print("Radmor 5102");

    { 
    if (sw2on);
    lcd.setCursor(0,0);
    lcd.print ("Fonica WS503");

    { 
    if (sw3on);
    lcd.setCursor(0,0);
    lcd.print ("Wzmacniacz lampowy");

    { 
    if (sw4on);
    lcd.setCursor(0,0);
    lcd.print ("Pionner A757");

    { 
    if (sw5on);
    lcd.setCursor(0,0);
    lcd.print ("Yamahca CA810");
    }
Są gotowe urządzenia przełączające, jak nie masz pojęcia o kodowaniu w C i elektronice lepiej dla twojego sprzętu tematu nie ruszaj Smile