Hirdetés

Új hozzászólás Aktív témák

  • vegyszer

    addikt

    Sziasztok!

    Megjött a két enkóderem a projekthez.
    Addig dúrtam a netet míg meg nem leltem egy kódot. Lásd lent
    Jól értem, hogy ez egy ESP8266WiFi modulra feltöltve egyből a telón futó skysafari app számára formázva küldi tovább az adatokat WiFi-n?
    Nekem csak annyi a dolgom, hogy a két enkódert a 4,5 illetve 14, 12 lábra kössem egy 5V illetve GND mellett, és már csak ellenőrizni kell, hogy a forgásirányok jók-e?
    Az enkóderek jelét, hogy pl 8000 jel/360° már az appban állítom be. Maga az app valami ilyesmi típusú jelet kap:
    +01234<TAB>-00045<CR>

    De nézegetve a ESP8266 lábait, nem találok 5V-os lábat.
    Ellenben van egy VUSB, ez 5V lenne?
    Valamint 12, és 14-es lába sincs. Csak D0-8, de GPIO van 16-ig. Ez lenne az?
    :O
    Na itt kicsit elbizonytalanodtam.

    alt="" title=""

    És a kód:

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <Encoder.h>

    Encoder encoder0(5, 4);
    Encoder encoder1(14, 12);
    int inByte;
    long encoder0Pos = 0;
    long encoder1Pos = 0;

    // Start a TCP Server on port 9876
    WiFiServer server(9876);
    WiFiClient client;

    void setup()
    {
    // Set unique name of AP
    uint8_t mac[WL_MAC_ADDR_LENGTH];
    WiFi.softAPmacAddress(mac);
    String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) +
    String(mac[WL_MAC_ADDR_LENGTH - 1], HEX);
    macID.toUpperCase();
    String AP_NameString = "ESP8266DSC_" + macID;
    char AP_NameChar[AP_NameString.length() + 1];
    memset(AP_NameChar, 0, AP_NameString.length() + 1);
    for (int i=0; i<AP_NameString.length(); i++)
    AP_NameChar[i] = AP_NameString.charAt(i);
    // DONE
    boolean result = WiFi.softAP(AP_NameChar, "stargazing");
    if(result == true)
    {
    // Start the TCP server
    server.begin();
    pinMode(D4, OUTPUT);
    digitalWrite(D4, LOW);
    }
    ESP.wdtDisable();
    ESP.wdtEnable(WDTO_8S);
    delay(100);
    }

    void loop()
    {
    if(!client.connected()) { // if client not connected
    client = server.available(); // wait for it to connect
    } else {
    if(client.available()) {
    inByte = (uint8_t)client.read(); // read char from client
    if (inByte == 81) //ascii for "Q"
    {
    encoder0Pos = encoder0.read();
    encoder1Pos = encoder1.read();
    printEncoderValue(encoder0Pos);
    client.print("\t");
    printEncoderValue(encoder1Pos);
    client.print("\r");
    }
    }
    }
    ESP.wdtFeed();
    delay(50);
    }
    void printEncoderValue(long val)
    {
    unsigned long aval;
    if (val < 0)
    {
    client.print("-");
    }
    else
    {
    client.print("+");
    }
    aval = abs(val);
    if (aval < 10)
    {
    client.print("0000");
    }
    else if (aval < 100)
    {
    client.print("000");
    }
    else if (aval < 1000)
    {
    client.print("00");
    }
    else if (aval < 10000)
    {
    client.print("0");
    }
    client.print(aval);
    }

    Biztosan valami nem kerek, de lehet, hogy csak nálam.
    Nyissátok fel kérlek vak (és igen kezdő) szemem
    Illetve a ESP8266WiFi lábkiosztási távolságra egyezik az Arduino nanoéval?
    Mert akkor fottasztás helyett lehet, hogy egy
    Arduino NANO Screw Terminal Expansion Board típusú ízét keresnék.

    [ Szerkesztve ]

    "Újságírás az, amit a hatalom nem akar nyomtatásban látni. Minden más csak propaganda." George Orwell

Új hozzászólás Aktív témák