Tengo un Arduino y me pregunto exactamente qué significa ALTO y BAJO en cuanto a los valores reales ... ¿Están suscritos? ¿Ints sin firmar? Caracteres sin signo ??? ¿Cuáles son sus valores? Supongo que ALTO y BAJO probablemente sean entradas sin firmar con todos los bits establecidos en 1 y 0 respectivamente, pero no estoy seguro. Me gustaría poder realizar operaciones en modo bit usando HIGH y LOW o pasar valores que no sean HIGH o LOW a digitalWrite. Además, ¿cómo podría convertir un número entero en ALTO o BAJO para poder hacer esto?Arduino ALTO BAJO
Respuesta
Si desea pasar a otros valores digitalWrite() se puede echar un vistazo al prototipo de función
void digitalWrite(uint8_t, uint8_t);
Por lo que cualquier valor entero (bueno, de 0 a 255) funcionaría. No tengo idea de cuál sería el comportamiento de digitalWrite() si le pasaras un valor distinto de ALTO y BAJO.
Dado que ALTO y BAJO son constantes simplemente definidas, no puede convertirlas en un entero (ni esa operación tendría sentido). Parece que podría usar un número entero en cualquier lugar que se esperara ALTO y BAJO.
En realidad, hacer esto es una mala idea, aunque por muchas razones: las definiciones de ALTO y BAJO podrían cambiar (poco probable pero posible) y no tiene sentido desde la perspectiva del tipo. En su lugar, debe usar lógica en su programa para determinar si ALTO o BAJO se debe pasar a la llamada de función, y luego pasar realmente la constante.
Tenga una mirada en hardware/arduino/cores/arduino/Arduino.h
(al menos en Arduino 1.0.1 del software), las líneas 18 y 19:
#define HIGH 0x1
#define LOW 0x0
Significado, estas define valores enteros hexadecimales, puede hacer lo que las operaciones bit a bit que desea con ellos - cuánto sentido tendrá, sin embargo, no es muy claro para mí en este momento. También tenga en cuenta que estos valores podrían estar sujetos a cambios en un momento posterior, lo que haría que las operaciones a nivel de bit sean aún más imprudentes.
Para agregar mi respuesta 2c a nyarlathotep. Líneas 18--25 de Arduino.h
(1.0) son:
#define HIGH 0x1
#define LOW 0x0
#define INPUT 0x0
#define OUTPUT 0x1
#define true 0x1
#define false 0x0
Por lo tanto, HIGH<==>OUTPUT<==>true<==>0x1
y LOW<==>INPUT<==>false<==>0x0
. Luego, HIGH<==>!LOW
y LOW<==>!HIGH
...
Es tan raro que INPUT/OUTPUT se invierta por completo (de un desarrollo "normal" usando AVR-GCC, de todos modos).Una de mis cosas favoritas sobre AVR mcu era que "1" parecía una "I" (para entrada), y "0" parecía una "O" para la salida, lo que hacía que fuera muy fácil de recordar. – BrainSlugs83
El primer argumento para digitalWrite() es un número de pin.
El segundo argumento de digitalWrite(), o bien:
1) escribir una ALTA (3,3 o 5 V) o bajo (0 V) con una salida binaria o
2) permitir (ALTO) o deshabilitar (LOW) el pullup interno en una ENTRADA BINARIA.
Las operaciones a nivel de bit para cualquiera de los argumentos no tienen sentido. ¿Quizás necesites usar analogWite()?
Consulte la documentación: digitalWrite()Constants
ALTO, BAJO son solo números (1 y 0) respectivamente. Las operaciones a nivel de bit en ellos tienen total sentido. - En cuanto al comportamiento de digitalWrite, el segundo argumento es un entero de 8 bits sin signo que se trata como un booleano, por lo que todo lo que no sea cero se debe tratar como ALTO. – BrainSlugs83
- 1. Mordisco alto y mordisco bajo ¿qué son?
- 2. próximo más alto/más bajo IEEE precisión doble número
- 3. Conceptos básicos de Arduino UNO para C#
- 4. Arduino stepper
- 5. ¿Qué tan alto debe/van los idiomas de alto nivel?
- 6. Vectores en Arduino
- 7. Comenzando con Arduino?
- 8. Arduino Emacs desarrollo
- 9. Arduino map() method - why?
- 10. Crear bibliotecas para Arduino
- 11. HTTPS alternativa en Arduino
- 12. Arduino + módulo Bluetooth + Android
- 13. Arduino Interrupciones en serie
- 14. Documentos de diseño (documentos de diseño de alto y bajo nivel)
- 15. Qué valores (alto o bajo) son mejores en getGsmSignalStrength() de Android
- 16. Configuraciones de AVCaptureSession de Bajo, Medio y Alto, ¿qué res representan cada una de ellas?
- 17. HDF5 para Python: interfaces de alto nivel frente a bajo nivel. h5py
- 18. Lenguaje de nivel bajo, medio y alto, ¿cuál es la diferencia?
- 19. ¿Cómo creo una serie de pitidos de alto y bajo tono usando Ruby o Python?
- 20. máximo (más alto) y el mínimo valor (más bajo) de tres enteros
- 21. MATLAB: aplique un filtro de paso bajo o de paso alto a una matriz
- 22. problemas de PPP alto
- 23. Comunicación USB con Android/Arduino
- 24. Trabajando con Android con Arduino
- 25. try/catch block en Arduino
- 26. Transmisión en serie lenta Arduino
- 27. Arduino y Bitwise, resultado inesperado
- 28. Arduino Cadena de formato Problema
- 29. Hablando con Arduino desde Scala
- 30. Arduino Problemas de RGB LED
realidad. VERDADERO y FALSO no están definidos en ningún lado para Arduino hasta donde yo sé, solo ALTO y BAJO y verdadero y falso ... (ALTO = verdadero, BAJO = falso) – codeling
Error, disculpa eso. – Ivan
Respuesta arriba estados constantes definidas. –