24-01-2021, 18:45
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
Pozdrawiam wszystkich serdecznie.
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
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");
}