Anslutning av diverse komponenter

Hej

Det är i sin ordning då jag testar och just den du pekar på ingår inte i koden. Jag tror jag vet varför den uppförde sig konstigt dvs. serial monitor gav så konstiga signaler, splittern jag har till GRD fungerar nog inte som tänkt?!

Mvh Fredrik

Vad är det då som ingår i koden och varför postar du en annan kod än den du kör?

Vi kommer inte att kunna hjälpa dig med dina kopplingarna eftersom du inte visat hur de ser ut men du kanske har löst problemet redan.

Hej

Jag har löst det :slight_smile:

Hej

Kan jag kortsluta mina switchar m.m. om jag har en aluminium plåt som täck för mina paneler, jag behöver skruva mina komponenter i plåten för att allt se bra ut?

Bäst att fråga så signalerna inte blir alldelles för snuriga :roll_eyes: :slight_smile:

Mvh Fredrik

Det ska inte vara någon risk.

Hej

I den bifogade filen kan min kod ses :slight_smile:

Mvh Fredrik

Kod kort1.txt (13.3 KB)

Hej

Mu har jag hittat ett sätt att ansluta mima rotary switch provade en ide jag hadde men blev inte bra men nu rullar anslutningarna på :slight_smile:

En sak två portar har börjat att rapportera som att det är en signal på dem fast att det inte är så?

Mvh Fredrik

Vad är anslutet på de portarna och hur har du anslutit det? En enkel skiss vore lämpligt.
Utan att veta ett dugg om vad/hur så får jag gissa på att du saknar pull-up eller pull-down.

perhof:
Vad är anslutet på de portarna och hur har du anslutit det? En enkel skiss vore lämpligt.
Utan att veta ett dugg om vad/hur så får jag gissa på att du saknar pull-up eller pull-down.

Jag har inte gjort någon förändring på porten den har fungerat dvs. rapporterat rätt!

Till port D1 är det en enkel on/off switch, rapporteringen sker som att den skulle stå i läge on fast den är off?

D1 som är bortkopplad rapporterar ändå :frowning:

Jag har INPUT_PULLUP på den, har något hänt med kortet eller chipet?

Det är skrämmande då jag är i byggstadiet och inte hunnit ta det i drift än. Då hela projektet bygger på att elektroniken är 100% stabil för att allt ska fungera, detta ger tecken att så tyvärr inte är fallet!

Mvh Fredrik

Hej

Du ser att jag använder // det är för att testa så det inte skrivs ut för mycket :slight_smile:

Jag ser att när jag har så här:
/*
if (digitalRead(VWPH9) == HIGH){Serial.print("0");} else{Serial.print("Left-Pitot_Heat");}
*/if (digitalRead(VWPH10) == HIGH){Serial.print("0");} else{Serial.print("Right-Pitot_Heat");}

if (digitalRead(VWPH11) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_Side");}
if (digitalRead(VWPH12) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_FWD");}
if (digitalRead(VWPH13) == HIGH){Serial.print("0");} else{Serial.print("Wheat-OVHT");}
if (digitalRead(VWPH14) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Left_FWD");}
if (digitalRead(VWPH15) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Left_Side");}

// Vänster panel - Center & Anti-ICE:
if (digitalRead(VAI16) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_ENG1");}
if (digitalRead(VAI17) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_ENG2");}
if (digitalRead(VAI18) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_Wing");}
if (digitalRead(VC27) == HIGH){Serial.print("0");} else{Serial.print("CPOW");}

if (digitalRead(VC19A) == HIGH){Serial.print("0");} else{Serial.print("Cside-Light_Test-DN");}
if (digitalRead(VC19B) == HIGH){Serial.print("0");} else{Serial.print("Cside-Light_Test-UP");}
if (digitalRead(VC20A) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Fuel_Flow-DN");}
if (digitalRead(VC20B) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Fuel_Flow-UP");}

if (digitalRead(VC21L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-OFF");}
if (digitalRead(VC21L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-RTO");}
if (digitalRead(VC21L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-1");}
if (digitalRead(VC21L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-2");}
if (digitalRead(VC21L5) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-3");}
if (digitalRead(VC21L6) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-MAX");}

if (digitalRead(VC22L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-SET");}
if (digitalRead(VC22L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-AUTO");}
if (digitalRead(VC22L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-V1");}
if (digitalRead(VC22L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-V2");}
if (digitalRead(VC22L5) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-WT");}
if (digitalRead(VC22L6) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-REF");}
if (digitalRead(VC22L7) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF--<");}

if (digitalRead(VC23L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-BOTH");}
if (digitalRead(VC23L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-AUTO");}
if (digitalRead(VC23L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-1");}
if (digitalRead(VC23L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-2");}

Skrivs inte Cconsole-N1_SET-BOTH ut på serial monitor!

Men gör jag:
/*
if (digitalRead(VWPH9) == HIGH){Serial.print("0");} else{Serial.print("Left-Pitot_Heat");}
if (digitalRead(VWPH10) == HIGH){Serial.print("0");} else{Serial.print("Right-Pitot_Heat");}
*/
if (digitalRead(VWPH11) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_Side");}
if (digitalRead(VWPH12) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_FWD");}
if (digitalRead(VWPH13) == HIGH){Serial.print("0");} else{Serial.print("Wheat-OVHT");}
if (digitalRead(VWPH14) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Left_FWD");}
if (digitalRead(VWPH15) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Left_Side");}

// Vänster panel - Center & Anti-ICE:
if (digitalRead(VAI16) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_ENG1");}
if (digitalRead(VAI17) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_ENG2");}
if (digitalRead(VAI18) == HIGH){Serial.print("0");} else{Serial.print("Anti-ICE_Wing");}
if (digitalRead(VC27) == HIGH){Serial.print("0");} else{Serial.print("CPOW");}

if (digitalRead(VC19A) == HIGH){Serial.print("0");} else{Serial.print("Cside-Light_Test-DN");}
if (digitalRead(VC19B) == HIGH){Serial.print("0");} else{Serial.print("Cside-Light_Test-UP");}
if (digitalRead(VC20A) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Fuel_Flow-DN");}
if (digitalRead(VC20B) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Fuel_Flow-UP");}

if (digitalRead(VC21L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-OFF");}
if (digitalRead(VC21L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-RTO");}
if (digitalRead(VC21L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-1");}
if (digitalRead(VC21L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-2");}
if (digitalRead(VC21L5) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-3");}
if (digitalRead(VC21L6) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-Auto_Brake-MAX");}

if (digitalRead(VC22L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-SET");}
if (digitalRead(VC22L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-AUTO");}
if (digitalRead(VC22L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-V1");}
if (digitalRead(VC22L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-V2");}
if (digitalRead(VC22L5) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-WT");}
if (digitalRead(VC22L6) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF-REF");}
if (digitalRead(VC22L7) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-SPD_REF--<");}

if (digitalRead(VC23L1) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-BOTH");}
if (digitalRead(VC23L2) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-AUTO");}
if (digitalRead(VC23L3) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-1");}
if (digitalRead(VC23L4) == HIGH){Serial.print("0");} else{Serial.print("Cconsole-N1_SET-2");}

Skrivs raden ut?

Mvh Fredrik

D0 och D1 används som RX och TX av serieinterfacet (Serial.print). Du kan inte använda de pinnarna till brytare och annat på något tillförlitligt sätt om du ska använda serieinterfacet för att skicka data.
Att det fungerat ibland eller att det sett ut som det fungerat är nog bara fråga om tur och timing.

Jag misstänker att du inte behöver seriekonsolen i produktion senare så då blir det kanske ett mindre problem men under utvecklingsfasen får du leva utan D0 och D1 om du ska använda Serial.print.

Och du, när du klistrar in kod i forumet så kan du markera koden och klicka på knappen Insert Code (#) i verktygsfältet så blir koden mycket lättare att läsa för oss andra.

Så här:

/*
if (digitalRead(VWPH9) == HIGH){Serial.print("0");} else{Serial.print("Left-Pitot_Heat");}
*/if (digitalRead(VWPH10) == HIGH){Serial.print("0");} else{Serial.print("Right-Pitot_Heat");}

if (digitalRead(VWPH11) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_Side");}
if (digitalRead(VWPH12) == HIGH){Serial.print("0");} else{Serial.print("Wheat-Right_FWD");}

Hej

Nu när du skriver det minns jag att jag läst det ja :slight_smile:

"Jag misstänker att du inte behöver seriekonsolen i produktion senare så då blir det kanske ett mindre problem men under utvecklingsfasen får du leva utan D0 och D1 om du ska använda Serial.print."

Hmm så här menar du nog:
"Serial.print" kan tas bort data t.ex. "Cconsole-N1_SET-BOTH" kommer ändå att skickas :~ :slight_smile:

Då blir det som en vanlig "else" funktion :slight_smile:

Mvh Fredrik

Hmm måste jag inte definera HIGH och LOW om jag tar bort Serial.print?

Jag menade att du kanske inte behövde skicka data via USB-interfacet överhuvudtaget.
Men om ditt kort ska kommunicera med en PC eller något annat blir du ju så illa tvungen. Då får du undvika att ha switchar eller annat kopplat till D0 och D1.

Hmm misatänkte det också :slight_smile:

Jag har läst detta:
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.

Gäller det vara D0 och D1. Jag tror "Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip." förklarar varför jag inte kan använda pin D0 och D1!?

Vad kan man ha till dessa pinar?

Mvh Fredrik

freddehboy:
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.

Det stämmer. I specifikationen finns massor av nyttig information om vilka pinnar som har speciella funktioner.

Gäller det vara D0 och D1. Jag tror "Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip." förklarar varför jag inte kan använda pin D0 och D1!?

Ja, det är därför du inte kan använda just D0 och D1 och det var det jag försökte säga när jag skrev att D0 och D1 används som RX och TX av serieinterfacet. Förlåt om jag uttryckte mig otydligt på något vis.

Vad kan man ha till dessa pinar?

Menar du: Vad kan man ha dessa pinnar till?
I så fall, du kan ha dem till samma sak som alla andra digitala pinnar utan PWM så länge du inte ska använda seriell kommunikation.

Ok :slight_smile:

Byte av port gjorde susen men nu rapporteras inget on läge på A6=D60!
Är det något som inte står om denna port i manualen?

Mvh Fredrik

Inget som jag känner till men det står å andra sidan ingenting om att använda de analoga ingångarna som digitala ingångar.
Databladet för ATmega2560 nämner att A6 extraknäcker som JTAG Test Data Output men det betyder nog inget i ditt fall.
Kanske läge att testa om D60 fungerar som den ska med en annan sketch som inte innehåller något annat.

Något i stil med detta kanske?

void setup() {
  pinMode(60, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  Serial.println(digitalRead(60));
  delay(200);
}

Hej

Den fungerar :slight_smile:

Vilket jag sa i början var att jag använder sockerbitar vilket fungerar men för den porten hade dessa tunna kablar från kortet halkat ner så det fanns ingen kontakt :roll_eyes:

Här är länken till min projekt sida:
http://arduinofsx.cybersite.nu/

Det är en hel del kvar att göra på sidan men alltid en början :slight_smile:

Du måste ha lösen för att se bilder!

Mvh Fredrik