Bart
Kun je aangeven wat je al gedaan hebt? welk(e) programma(s)? waar gaat het fout?
Nu ga je naar de garage met de opmerking "mijn auto doet het niet".... Je vertelt niet het merk, wat je al gedaan hebt, wat hij niet doet..... etc.
De documentatie daarvan is nogal verwarrend.
Je ziet namelijk een plaatje waar ie als shield op vermoedelijk een Uno zit.
Maar op pagina 3 staat bij de beschrijving van de aansluitingen een *sterretje bij de eerste en de laatste GPIO pin, VDD.
Onderaan dat tabelletje staat dat sterretje weer, en dat VDD = 3.0 volt.
En er staat een note, die weergeeft dat de poort 3 volt level is.
Maar waar die note op slaat staat er niet bij, er zijn 4 ports beschreven.
Verder staat beschreven dat de seriële poort van de module met een jumper ingesteld kan worden (pagina 4).
Eigenlijk zou daar moeten staan dat je dit MOET instellen, en de vraag is of er een standaard instelling is, of dat ie standaard niet is ingesteld (doordat het jumpertje twee bovenste en twee onderste pinnetjes verbindt, en nooit met de middelste rij).
Op deze pagina vind je een aantal links naar allerlei zaken die je zouden moeten kunnen helpen met deze module aan de slag te gaan (aangenomen dat het inderdaad die module betreft).
De pagina waar je naar linkt, bevat HTML fouten.
Er staat steevast een backslash voor de naam van het plaatje, waar dat voor HTML een forward slash moet zijn (voor windows zou de backslash wel kloppen).
Hierdoor zijn bij mijn browser (en ik denk bij alle browsers) de foto's niet te zien.
Bij mijn browser, firefox, kan ik op een plaatje klikken en de bijbehorende link openen in een nieuw tabblad, natuurlijk met een fout resultaat.
Maar vervolgens kan de link worden aangepast, waardoor de afbeelding wel verschijnt.
De maker van de pagina kan het beste op deze fout gewezen worden, ik heb dat nu niet gedaan.
Het helpen word moeilijker voor degenen die dat willen proberen als er geen terugkoppeling is.
Ik bedoel daarmee dat je zegt van alles geprobeerd te hebben, maar niks.
Niks is extreem weinig, minder nog dan een verkeerd resultaat.
Daarom is het een goed idee om te kijken of je beter kunt zien wat er gebeurt.
Het zou bijvoorbeeld zomaar kunnen zijn dat er een probleem is waardoor de seriële poort (serial1) niet goed werkt.
Daarom zou ik je willen aanraden om die serial1 port eens te testen.
En wel met gebruik van zoveel mogelijk elementen uit de sketch voor die Itead shield, om ervoor te zorgen dat je eventueel conflicterende zaken ook meepakt in je test.
Wanneer je een andere Arduino hebt, kun je die via diens seriële poort verbinden met serial1 van je Mega.
Vervolgens kun je met de IDE en serial monitor kijken wat er allemaal voorbij komt, áls er al iets komt.
De Mega ga je met de shield verbinden door de jumpers helemaal te verwijderen en in plaats daarvan jumperwires te gebruiken.
Dit is het plaatje dat daarbij hoort:
Is dit ook wat jij gedaan hebt ?
Als je dit allemaal al wist en gedaan hebt, dan zou het handig zijn als je ons meer kunt vertellen dan "niets".
Dus vertellen wat je verwacht te zien, en wat je in plaats daarvan krijgt te zien.
Ik heb reeds geprobeerd met jumpwires de TX en RX te verbinden met men Arduino Mega enkel weet ik dan niet goed op welke van de pins deze moeten geplaatst worden op de shield.
Ik heb ook ooit een module gehad van itead (doe ik nooit meer) en als ik me goed herinner moet je het juiste commando sturen voor die iets terugstuurd.
Met vriendelijke groet
Jantje
PS zoals Mas stelde: de links werken bij mij allemaal niet dus veel zinnings kan ik niet zeggen.
BartBernaerts:
Ik heb reeds geprobeerd met jumpwires de TX en RX te verbinden met men Arduino Mega enkel weet ik dan niet goed op welke van de pins deze moeten geplaatst worden op de shield.
Maakt dit uberhaupt uit?
Jazeker maakt dat uit.
In mijn verhaal hierboven vertelde ik dat je de bovenste en de onderste rij van 3 waar je met jumpers de RX en TX poort instelt, de jumper wires zou moeten plaatsen.
Ik heb nog steeds het sterke vermoeden dat dat ook zou werken, maar weet het niet zeker.
Want het plaatje wat ik er ook bij heb gezet, toont dat de jumper wires zijn verbonden met de shield connectoren.
in dat geval moet je het jumpertje ook op de daarbij behorende plaats zetten.
Ik zou het graag met je uitzoeken hoe dat echt moet gaan (omdat ik dat leuk vind om uit te zoeken).
Maar ik ben extreem druk met werk, ongeveer 16 uur per dag de komende 4 werkdagen.
Dan blijft er erg weinig tijd over om te eten en ook nog lekker te ontspannen (door hier op de site aanwezig te zijn), naast het slapen (gedurende 4, hooguit 5 uurtjes ongeveer).
BartBernaerts:
Bijkomend geprobeerd om TX te verbinden met poort 18 en RX met poort 19 maar niks...
TX moet verbonden worden met 19 en RX met 18
De T van Tx staat voor transmit (dat is verstuur) en de r van rx staat voor receive (dat is ontvang)
Wat de een verzend (TX) moet de andere ontvangen (rx)
Ondertussen weer paar dagen verder en nogmaal poging ondernemen om de shield aan de praat te krijgen.
Momenteel registreert de shield zich op het netwerk, Net ledje knippert om de +/- 5sec (bij opstart sneller). Alle jumpers van TX / RX zijn verwijderd en aangesloten dmv. jumpwires met poort 18 (TX) en 19 (RX).
Desalniettemin is mijn sms niet verstuurd als ik onderstaande code gebruik.
unsigned char buffer[64]; // buffer array for data receive over serial port
int count=0; // counter for buffer array
void setup()
{
// set up the digital pins to control
Serial.begin(9600);
Serial.println("Hello Computer");
String outMessage = "Hello world!";
String destinationNumber = "+xxxxxxxxxxx"; // in te vullen....
// wake up the GSM shield
Serial1.begin(19200);
delay(20000); // give time to log on to network.
if (Serial1.available())
{
Serial.println("Serial 1 available");
}
else
{
Serial.println("Serial 1 NOT available");
}
while(Serial1.available())
{
buffer[count++]=Serial1.read();
if(count == 64)break;
}
Serial.write(buffer,count);
Serial1.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
Serial1.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(100);
Serial1.print("AT+CMGF=1\r");
delay(100);
Serial1.println("AT + CMGS = \"" + destinationNumber +"\"");
delay(100);
Serial1.println(outMessage);
delay(100);
Serial1.println((char)26);//ctrl+z
delay(100);
Serial.println("The End!");
}
void loop()
{
}
if (Serial1.available())
{
Serial.println("Serial 1 available");
}
else
{
Serial.println("Serial 1 NOT available");
}
Je hebt een communicatie probleem op Serial1, hoewel die geinitialiseerd wordt is die niet 'beschikbaar' (NOT available).
Kan verschillende oorzaken hebben lijkt me.
Bijvoorbeeld:
De baudsnelheid is onjuist. Het zal wel in de documentatie staan wat de juiste baudrate is en of daar nog een bepaalde jumperinstelling op het shield bij hoort. (is niet goed te zien op de foto's)
Tx en Rx verwisseld (kun je gewoon uitproberen)
Ik ken dit shield niet en heb ook de documentatie niet bekeken. Ik kan alleen wat veel voorkomende oorzaken bedenken.
Als alles goed is ingesteld/aangesloten dan geeft het commando IfSerial iets terug wat je programma dan als 'TRUE' interpreteerd. Je Serial1 geeft geen respons vandaar de foutmelding.
Ik krijg een beetje het idee dat je niet begrijpt wat available() betekent......
Serial.available() betekent niet dat de Serial beschikbaar is, maar dat er tekens zijn ontvangen en in de ontvangstbuffer klaar staan. M.a.w. er komt niets binnen van de GSM shield. Ik weet niet of dat je eerst er iets heen moet sturen voordat je een antwoord krijgt van die module?